Skip to content

docs: ストア掲載の可否調査と、見送る方針を追加 - #16

Merged
5ym merged 3 commits into
masterfrom
docs/publishing
Sep 16, 2026
Merged

5ym merged 3 commits into
masterfrom
docs/publishing

Conversation

@5ym

@5ym 5ym commented Sep 16, 2026

Copy link
Copy Markdown
Owner

概要

Google Play への掲載が規約上可能かを調査し、結果と方針を PUBLISHING.md にまとめた。

方針

掲載は規約上可能だが、当面見送り、商用ライセンスの直販に集中する。

理由:

  1. AGPL-3.0 のソースを公開している以上、誰でも自分でビルドできる。有料アプリの価値が「ビルドの手間を省くこと」だけになり、手数料 15〜30% に見合わない
  2. キオスク端末は台数展開する業務用途で、Google アカウント単位の有料アプリは運用と合わない
  3. 既存のデュアルライセンス(AGPL を嫌う利用者に商用ライセンスを販売する)が、そもそも収益経路として成立している。Play の有料アプリはこれと食い合う

調査記録は方針を変える場合の資料として残す。

調査でわかったこと

掲載する場合の最大の関門は SystemBarBlockerService による AccessibilityService の利用。Play は非アクセシビリティ目的での利用を禁止してはいないが、アプリ内での目立つ開示と明示的な同意取得、Play Console での宣言フォーム、デモ動画の提出が必須になる。isAccessibilityTool="true" は設定してはいけない(虚偽申告はアプリ停止・開発者アカウント解約の対象)。

また新規アプリは AAB 必須で、現在の release.yml は APK のみを生成している。AAB は Play の動的配信のための形式で、GitHub Releases で配る限りは不要。

AGPL は障害にならない。ストアとの衝突で有名なのは Apple の事例で、Play には該当しない。加えて CLA により権利者が Doa に集約されているため配布形態は自由に選べる。

掲載と無関係に見つかった問題

調査の過程で、ストアに出すかどうかと関係なく問題のある箇所が 2 つ見つかった。#17 で修正済み。

  1. カメラ権限の無条件要求 — 起動時に要求し、拒否されると WebView が読み込まれないまま空白画面で固まる(復帰経路なし)
  2. WebView の権限要求を無条件許可request.grant(request.resources) が要求内容を問わず許可していた

🤖 Generated with Claude Code

Google Play への掲載が規約上可能かを調査し、結果と手順を PUBLISHING.md にまとめる。

掲載自体は可能だが、AccessibilityService の非アクセシビリティ利用にあたるため、
アプリ内での開示・同意、Play Console での宣言、デモ動画の提出が必要になる。
あわせてカメラ権限の要求方法と WebView の権限要求の扱いに要修正箇所がある。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@claude

claude Bot commented Sep 16, 2026

Copy link
Copy Markdown

Claude finished @5ym's task in 1m 32s —— View job


レビュー結果

  • コンテキストの収集(PR差分、CLAUDE.md確認 — リポジトリに CLAUDE.md は存在せず)
  • PUBLISHING.md の内容確認
  • レビュー観点(不具合・セキュリティ・設計・テスト)でのチェック
  • コメント投稿

概要

PUBLISHING.md はドキュメントのみの追加で、コードの変更はありません。本文中でコードを参照している箇所(MainActivity.onCreate のカメラ権限要求、onPermissionRequest の無条件許可、accessibility_service_config.xmlrelease.ymlassembleReleasebuild.gradletargetSdk/compileSdk/minSdk/versionCodeCONTRIBUTING.md の CLA、LICENSE の AGPL-3.0)は実際に現行コードを読んで突き合わせましたが、すべて記述通りで事実誤認は見当たりませんでした。

  • 不具合: ドキュメントのみのため該当なし。
  • セキュリティ: 本PRはコード修正を含まず、指摘されているカメラ権限・WebView権限の問題は本文でも「未修正・要対応」として明記されており、PRの説明とも整合しています。
  • 設計: 表と本文の対応が取れており、既存の README / CONTRIBUTING.md の内容とも矛盾しません。
  • テスト: ドキュメント追加のみのため、テストの追加は不要と判断します。

インラインで1点、要確認事項をコメントしました(Google Play の個人アカウント要件について、一次情報へのリンクがあると将来の検証がしやすい、という提案です。必須の修正ではありません)。

それ以外に大きな問題は見つかりませんでした。よく調査されたドキュメントだと思います。

Comment thread PUBLISHING.md
Comment on lines +179 to +185
3. **個人アカウントの場合の追加要件**: 2023-11-13 以降に作成された個人アカウントは、
製品版の公開前に **12 名以上のテスターが 14 日間連続でオプトインしたクローズドテスト**が
必要です。組織アカウント、およびそれ以前に作成された個人アカウントは免除されます
- 「オプトイン」は招待を承諾し実際にインストールした状態を指します。招待しただけ、
エミュレータ、重複アカウントはカウントされません
- このアカウントがどちらに該当するかは未確認です。**最初に確認してください**。
該当する場合、掲載までの所要期間が 2 週間以上延びます

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

要確認: 「2023-11-13 以降に作成された個人アカウントは 12 名×14 日間のクローズドテストが必要」という要件は Google Play の実際のポリシーと整合していますが、ポリシーページへの参照リンクが本文中に無いため、将来この記述が古くなった場合に気付きにくくなります。Play Console ヘルプの該当ページへのリンクを添えておくと、後で見直す際に一次情報へすぐ辿れて安全だと思います。

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

指摘のとおりです。対応しました。

原因は書き方の誤りで、修正自体は別ブランチの #17 にあり、このPRの差分には含まれていません。それを「修正済み」と書いたため、実際のコードとも本文の他の箇所(「(要修正)」という見出しや対応手順リスト)とも矛盾していました。

参照先を明示する形に統一しました。

「実際にはまだ脆弱な状態のコードが対応済みと誤認されるリスク」という観点も妥当だと考えます。#17 がマージされるまでは未修正であることが、どの箇所を読んでも分かる形になりました。

なお #17 では、指摘の 2 点に加えて判定ロジックを Android 非依存の WebPermissionPolicy に切り出し、ローカルユニットテストを追加しています。

課金は商用ライセンスの直販に集中する方針となったため、Google Play への掲載は
当面見送る。調査記録は方針を変える場合の資料として残す。

あわせて、掲載と無関係に問題のある 2 箇所を修正済みである旨を反映する。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@claude

claude Bot commented Sep 16, 2026

Copy link
Copy Markdown

Claude finished @5ym's task in 1m 33s —— View job


レビュー結果(再レビュー: 追加コミット 1b60e70 反映)

  • コンテキストの収集(git diff origin/master...HEAD、追加コミットの差分確認)
  • PUBLISHING.md の内容と現行コードの突き合わせ
  • レビュー観点(不具合・セキュリティ・設計・テスト)でのチェック
  • インラインコメント投稿

概要

本PRは PUBLISHING.md のみを追加・更新するドキュメントPRです。今回の追加コミット(docs: ストア掲載を見送る方針を追記)で「Google Play 掲載は当面見送り、商用ライセンスの直販に集中する」という方針が追記されました。

指摘事項(要修正の可能性が高い)

新規追加された「現在の方針」セクション(PUBLISHING.md:19-20)および対応表(PUBLISHING.md:39-40)に、「カメラ権限の無条件要求」と「WebView の権限要求の無条件許可」の2点が修正済みであるとの記載がありますが、本PRの差分は PUBLISHING.md のみで、MainActivity.kt に変更はありません。実際に現行コードを確認したところ、

  • MainActivity.onCreate(MainActivity.kt:60-75)は依然として起動直後に無条件で CAMERA を要求
  • configureWebView 内の onPermissionRequest(MainActivity.kt:80-83)は依然として request.grant(request.resources) で無条件許可

と、いずれも未修正のままでした。さらに文書内の他の箇所(26行目、32〜33行目、99行目・120行目の見出し「(要修正)」、184〜186行目の対応手順リスト)は逆にこの2点を未対応として扱っており、「現在の方針」セクションの記載と本文内で矛盾しています。「対応済み」の記述を削除するか、実際にコードを修正するかで整合を取る必要があります。インラインで詳細をコメントしました。

その他の観点

  • 不具合: 上記の1点以外は本文と現行コードの記述に齟齬なし(accessibility_service_config.xmlrelease.ymlbuild.gradleLICENSING.md の存在などを確認済み)。
  • セキュリティ: ドキュメントのみのため直接の懸念なし。ただし上記の「対応済み」誤記載により、実際にはまだ脆弱な状態のコードが「対応済み」と誤認されるリスクがある点は実質的にセキュリティ上の懸念でもあります。
  • 設計: 「現在の方針」セクションの追加自体は理由も明確で妥当。ただし前述の整合性の問題あり。
  • テスト: ドキュメント変更のみのため追加テストは不要と判断します。

それ以外に大きな問題は見つかりませんでした。

@5ym 5ym changed the title docs: ストア掲載の可否調査と手順を追加 docs: ストア掲載の可否調査と、見送る方針を追加 Sep 16, 2026
Comment thread PUBLISHING.md
Comment on lines +19 to +20
以下は掲載を検討した際の調査記録です。方針を変える場合の資料として残します。

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

不具合(要確認ではなく事実誤認の可能性が高い): ここで「カメラ権限の要求方法と WebView の権限要求の無条件許可は修正済み」と記載されていますが、本PRの差分は PUBLISHING.md のみで、MainActivity.kt には変更がありません。実際に現在のコードを確認したところ、

  • MainActivity.onCreate(60〜75行目)は依然として起動直後に無条件で CAMERA を要求しています
  • configureWebView 内の onPermissionRequest(80〜83行目)は依然として request.grant(request.resources) で無条件許可しています

つまりコードは未修正のままです。さらに本文の他の箇所(26行目、32〜33行目、99行目「(要修正)」、120行目「(要修正)」、184〜186行目の対応手順リスト)は逆にこの2点を未修正として扱っており、この「現在の方針」セクションの記載と矛盾しています。「対応済み」という記述を削除するか、実際にコードを修正するか、いずれかで整合を取る必要があると思います。

Comment thread PUBLISHING.md Outdated
Comment on lines +39 to +40
| カメラ権限の無条件要求 | ~~要修正~~ 対応済み | 必要時のみ要求へ変更 |
| WebView の権限要求を無条件許可 | ~~要修正~~ 対応済み | 要求内容を検査してから許可 |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

こちらも同様に「対応済み」となっていますが、19〜20行目のコメントで指摘した通り、実コード(MainActivity.kt)は未修正です。加えて後述の 1.2/1.3 節(99行目・120行目)や 3.1 節(184〜186行目)は「要修正」のまま据え置かれており、表の記載と本文が矛盾しています。

「修正済み」と書いていたが、実際の修正は別ブランチの #17 にあり、この差分には
含まれていない。本文側の「(要修正)」という記載とも矛盾していた。
参照先を明示する形に統一する。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@claude

claude Bot commented Sep 16, 2026

Copy link
Copy Markdown

Claude finished @5ym's task in 1m 11s —— View job


レビュー結果(再レビュー: 追加コミット 5e2ced0 反映)

  • コンテキストの収集(PR差分、過去のレビューコメント確認)
  • 最新コミット 5e2ced0(fix: カメラ権限の要求とWebViewの権限許可を見直す #17 への参照修正)の内容確認
  • PUBLISHING.md 全体の整合性チェック
  • レビュー観点(不具合・セキュリティ・設計・テスト)でのチェック
  • コメント投稿

概要

前回のレビューで指摘した「カメラ権限の無条件要求」と「WebView の権限要求の無条件許可」に関する記述の矛盾(方針セクションでは「対応済み」、本文・対応表では「要修正」のまま)は、本コミットで解消されています。現在は該当箇所すべてが「#17 で対応(しています/予定)」という表現に統一されており(PUBLISHING.md:22, 39-40, 99, 120, 185-186)、実コード(MainActivity.kt)がまだ未修正であることとも矛盾しません。実際に PR #17(現在 Open)がこの2点を修正する内容であることも確認しました。

  • 不具合: ドキュメントのみのため該当なし。
  • セキュリティ: 直接の懸念なし。カメラ/WebView 権限の問題は「#17で対応」と明記されており誤解を招く記述はありません。
  • 設計: 本文中でコードを参照している箇所(accessibility_service_config.xmlisAccessibilityTool 属性が無いこと、release.ymlassembleRelease のみで bundleRelease が無いこと、build.gradlecompileSdk=37/minSdk=24/targetSdk=36versionCodeappVersionCode(=github.run_number)経由であること)を実コードと突き合わせましたが、いずれも記述通りで事実誤認は見当たりません。「現在の方針」セクションの追加も理由が明確で、既存のライセンス方針(dual license)とも整合しています。
  • テスト: ドキュメント追加のみのため追加テストは不要と判断します。
軽微な確認事項(要確認・必須の修正ではありません)

PUBLISHING.md:22 ほか複数箇所の「#17 で対応しています」という表現は現在形ですが、参照先の PR #17 はまだ Open(未マージ)です。読者が本文だけを見て「既にマージ済みで解決済み」と誤解する可能性はわずかにあります。ただし PR 番号へのリンクがあるため実際のステータスは容易に確認でき、致命的な問題ではないと考えます。

それ以外に大きな問題は見つかりませんでした。よく整理されたドキュメントです。

@5ym
5ym merged commit 92b2cad into master Sep 16, 2026
3 checks passed
@5ym
5ym deleted the docs/publishing branch September 16, 2026 03:57
@5ym 5ym mentioned this pull request Sep 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant