第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をアップロードします。

  1. テスターのGoogleアカウントまたはグループを登録する。
  2. releaseを作成し、.aabをアップロードする。
  3. リリースノートを書き、警告を確認する。
  4. テスターURLから実機へインストールする。
  5. ログイン、保存、更新、クラッシュ、データ削除を確認する。
  6. 必要に応じてClosed testing、Open testingへ進む。
  7. 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の確認だけで完了にしません。