第8章
Android版をビルドしてGoogle Playへ公開する
applicationId、署名鍵、App Bundle、Play Consoleの内部テストから本番公開までを学びます。
この章で学ぶこと
- AndroidのアプリID、バージョン、署名を確認する
- release用Android App Bundleを作る
- Play Consoleで内部テストから段階的に公開する
1. 公開前の識別情報を確認する
AndroidではapplicationIdがアプリを一意に識別します。公開後に別のIDへ変えると、同じアプリの更新として配れません。
確認する項目は次のとおりです。
android/app/build.gradle.ktsなどのapplicationId- アプリ名とアイコン
pubspec.yamlのversion: 1.0.0+1- 最小・対象Android SDK
AndroidManifest.xmlの権限- Firebaseに登録したAndroidアプリのpackage name
- Googleログインなどで使う署名証明書のフィンガープリント
使わないカメラ、位置情報、連絡先などの権限を残しません。機密性の高い権限はPlay Consoleで追加申告や審査が必要になることがあります。
2. アップロード鍵を作る
Google Playへ送るApp Bundleはアップロード鍵で署名します。FlutterのAndroid公開ガイドに従い、keystoreを作成し、Gradleの署名設定から参照します。
管理ルールは次のとおりです。
- keystoreとパスワードをGitへ入れない。
- チームの承認済み秘密情報保管場所へバックアップする。
- 個人PCだけを唯一の保管場所にしない。
- ファイルをチャットや生成AIへ貼らない。
- 誰がreleaseビルドを作れるかを限定する。
Google Playの「Play App Signing」を使う場合、チームが持つアップロード鍵と、Google Playが配布APKへ使うアプリ署名鍵は別です。GoogleログインなどのAPIへは、Play Consoleに表示される配布用証明書のSHA-1/SHA-256も登録します。Play App Signing公式説明
3. release App Bundleを作る
flutter clean
flutter pub get
flutter test
flutter build appbundle --release --dart-define=APP_ENV=prod
成功すると通常、次のファイルができます。
build/app/outputs/bundle/release/app-release.aab
Google PlayではApp Bundle(.aab)が推奨されます。端末へ直接配るAPKと混同しないでください。
ビルドログと成果物について、次を確認します。
- release署名になっている。
- developmentではなくproductionのFirebaseへ接続する。
- 同じストアアプリの以前の版よりbuild numberが大きい。
- デバッグ用のサーバーURL、テスト広告ID、詳細ログが残っていない。
4. Play Consoleにアプリを作る
Account ownerまたは権限を持つメンバーがPlay Consoleでアプリを作成します。アプリ名、既定言語、アプリ/ゲーム、無料/有料、連絡先などを登録します。Play Consoleのアプリ作成
続けて、実際の機能に合わせて次を入力します。
- ストア掲載情報、アイコン、スクリーンショット
- プライバシーポリシーURL
- Data safety
- コンテンツレーティング
- 広告の有無
- 対象年齢と子ども向け設定
- アプリへのアクセス方法(審査用ログインが必要な場合)
- 国・地域、価格、問い合わせ先
規約や対象APIレベルは更新されます。提出時にPlay Consoleが示す未完了タスクと、最新の公式ポリシーを確認してください。
5. 内部テストから公開する
最初からProductionへ出さず、Internal testingへ.aabをアップロードします。
- テスターのGoogleアカウントまたはグループを登録する。
- releaseを作成し、
.aabをアップロードする。 - リリースノートを書き、警告を確認する。
- テスターURLから実機へインストールする。
- ログイン、保存、更新、クラッシュ、データ削除を確認する。
- 必要に応じてClosed testing、Open testingへ進む。
- Productionは段階公開を選び、指標を見ながら割合を増やす。
更新時も同じapplicationIdと署名関係を保ち、build numberを増やします。
うまくいかないとき
| 症状 | 確認すること |
|---|---|
| 署名エラー | keystoreのパス、alias、パスワード、release設定 |
| 既に使われたversion code | pubspec.yamlの+番号を増やす |
| Googleログインだけ失敗 | package name、Playのアプリ署名証明書、Firebase設定 |
| Firebaseへ接続できない | productionのAndroid App登録、google-services.json相当の設定、App Check |
| アップロード後に警告 | 対象API、権限、Data safety、ネイティブシンボル |
| 更新として扱われない | applicationIdまたは署名が以前と異なる |
やってみよう
Internal testingへ公開し、Play Store経由でインストールした版の署名とFirebase接続を確認してください。ローカルで直接入れたAPKの確認だけで完了にしません。