リリースチェック
あなたは、Google PlayやApp StoreのレビューでリジェクトされないFlutterアプリのリリースを支援しています。具体的に、問題があるファイル名と正確な変更箇所をすべて挙げてください。
ステップ1: 決定論的プリフライトを実行する
Flutterプロジェクトのルートから以下を実行してください:
bash "${CLAUDE_PLUGIN_ROOT}/scripts/preflight.sh" $ARGUMENTS
このスクリプトは、セクション(Version、Changelog、Static analysis、Tests、Debug leftovers、Android、iOS)ごとにOK / WARN / FAILの行を出力し、FAILがある場合は終了コード1で終了します。テストが実行されるときに時間がかかることがあります。ユーザーが明らかに開発途中であり、簡単な確認だけを希望する場合は、--skip-testsを渡してください。
ステップ2: すべてのFAILとWARNを調査する
各項目について、スクリプトが指定したファイルを開き、結果を確認してから報告してください。よくある修正:
| 調査結果 | 修正方法 |
|---|---|
| バージョンにビルド番号がない | pubspec.yaml で version: 1.2.0 を version: 1.2.0+1 に変更する。 |
| このバージョンのタグがすでに存在する | bump-version スキルを実行する。 |
com.example のapplicationIdまたはバンドルID | flutter pub run change_app_package_name:main com.yourco.app を使用するか、android/app/build.gradle(.kts) と ios/Runner.xcodeproj/project.pbxproj 内の3つの PRODUCT_BUNDLE_IDENTIFIER エントリを編集する。 |
| デバッグキーでリリース署名 | key.properties のロードと release 署名設定を追加する。詳細は references/android-signing.md を参照。 |
key.properties または *.jks がgitで追跡されている | .gitignore に追加し、git rm --cached <ファイル> を実行する。リポジトリが公開されている場合はキーストアのパスワードを変更する。 |
PrivacyInfo.xcprivacy がない | ios/Runner/PrivacyInfo.xcprivacy を作成する。テンプレートは references/privacy-manifest.md を参照。 |
debuggable=true、クリアテキストトラフィック、localhost URL | リリース前に削除する。 |
| アナライザーエラー / テスト失敗 | 修正する。スキップを提案しないこと。 |
ステップ3: スクリプトがチェックできない項目を確認する
プロジェクトを確認し、以下を考慮してください:
- ターゲットSDK: Google Playでは、新しいアプリとアップデートは最近のAndroid APIレベルをターゲットにする必要があります(Playのローリング要件はおおよそ前年のリリースです)。
android/app/build.gradle(.kts)またはFlutterのデフォルトでtargetSdkを確認してください。 - アプリアイコンとスプラッシュ: デフォルトのFlutterアイコンはレビューでリジェクトされ、ユーザーに即座にアンインストールされます。
flutter_launcher_icons/flutter_native_splashの設定またはmipmapフォルダを確認してください。 - パーミッション: マニフェストにINTERNET以外のパーミッションがある場合は、
permission-auditスキルを実行するよう提案してください。 - ストアアセット: フィーチャーグラフィック1024x500(Play)、各必須デバイスクラス用のスクリーンショット、プライバシーポリシーURL(アプリがデータを収集する場合や機密パーミッションを要求する場合に必須)。
- アカウント削除: どちらのストアでも、アプリがアカウント作成をサポートする場合、アプリ内でのアカウント削除パスが必要です。
- レビュアー用ログイン: ログイン画面がある場合、レビューノートにデモアカウントを提供するようユーザーに注意してください。
ユーザーがリジェクト理由を尋ねたり、より詳細なレビューを希望する場合は、references/store-rejections.md を読んで、一般的なリジェクト理由とその修正の完全なリストを確認してください。
ステップ4: 報告
短いレポートを返してください:
- 判定: READY / NOT READY。
- 必須修正(FAIL項目、それぞれファイルと正確な変更箇所を添えて)。
- 推奨修正(このアプリにとって重要なWARN項目)。
- 次のコマンド: 通常は
flutter build appbundle --releaseとflutter build ipa --release。バージョンがすでに出荷済みの場合は、その前にbump-versionとchangelogを実行します。
簡潔に保ってください。ユーザーが完全な出力を要求しない限り、OKの行を繰り返さないでください。