2022年6月時点の Google Play Console へのアプリバイナリ (apk, aab) アップロード自動化のための、主に Google Play Console や Google Cloud Platform の設定のやりかたです。
ステップ
- Google Play Developer API 用の鍵の発行
- 適切な権限を設定する
- リリース用のツールをセットアップ
1. Google Play Developer API 用の鍵の発行
リリース用のツールで API を触るために鍵の発行が必要です。すでに鍵がある人はこのステップをスキップできます。
1-1. Google Cloud プロジェクトと紐づける
まず Google Play Console にログインして 「設定」 > 「API アクセス」を開きます:
そうすると 一番最初は Google Cloud プロジェクトが紐づいてないので
「新しい Google Cloud プロジェクトを作成する」か「既存の Google Cloud プロジェクトをリンクする」のどちらかを選びます。
今回はこれ用に Google Cloud プロジェクトを作成します。
(あとで外してこの状態に戻すこともできます)
したらば、権限がない場合は必要な権限を有効にするか訊かれるので OK を押すと、
しばらくしたのちに表示が変わってリンクされたダッシュボードになります:
1-2. サービスアカウントを作成
サービスアカウントを使って自動化を行いますが、今はなにも作成されていないので作成します。
「サービスアカウント」の節の右端の Learn how to create service accounts
を押します。
そうするとモーダルが出て作成手順が紹介されるので、
手順にそって Google Cloud Platform 側で作業を行いましょう。
(1) の Google Cloud Platform
のリンクを別タブあたりで開き
こちらで作業を継続します。
先ほど新規作成されたプロジェクトのサービスアカウント画面が表示されます。
「+サービスアカウントを作成」のボタンからサービスアカウントを作成しましょう。
サービスアカウント名は任意です。いい感じになったら「作成して続行」ボタンを押して次のステップに移動します。
ロールを指定できるので「サービスアカウントユーザー」のロールを指定します。
次のステップはスキップで完了してサービスアカウントを作成できました。
1-3. サービスアカウントの鍵を作成
作成したサービスアカウントをツールから API 経由で操作するための鍵のファイルを作成します。
右端の「操作」メニューの「鍵を管理」を選択します。
そうすると、いかにも鍵を管理しそうな画面が表示されるので、
「鍵を追加」ボタンから「新しい鍵を作成」を選択して鍵を作成します。
鍵の形式は JSON を選択して「作成」します。これで鍵のファイルが自動的にダウンロードされるので、これは大事に保管します。
2. 適切な権限を設定する
ここでは Google Cloud Plaform のページから、さきほどの Google Play Console の API アクセスの画面に戻ります。
閉じてた人はふたたび Google Play Console の「設定」>「API アクセス」を開きます。
このモーダルは「完了」を押して閉じます。画面が更新され、サービスアカウントに作成したアカウントが追加されているのを確認します:
右端の Manage Play Console permissions
を選択し権限の設定を行います。
すると、ユーザーを招待の画面が表示されるので、まず「アカウントの権限」タブで権限を設定します。
リリースだけであればこのあたりの権限があればよいので、必要に応じて選択します。
忘れてはいけないのは「アプリの権限」タブで、このシートも表示して対象のアプリを追加しましょう。
アプリに対する権限選択の画面が出るので適宜選択します。
すべて指定できたら右下の「ユーザーを招待」ボタンをクリックして完了です。後で変更もできます。
3. リリース用のツールをセットアップ
最後にリリース用のツールをセットアップしてうまくいくか確認します。
Gradle のプラグインや Fastlane などありますが、今回は Fastlane を使いましょう。
3-1. Fastlane のセットアップ
Fastlane は brew install fastlane
あたりで導入します。
対象のアプリのプロジェクトのディレクトリで fastlane init
すれば
対話的にセットアップできるので楽ちんです。
途中で Path to the json secret file:
と鍵の位置を尋ねてくるので指定します。
3-2. Fastfile の調整
あとは適当に作成された fastlane
ディレクトリの Fastfile
をいじったりします。
desc "Deploy a new version to the Google Play"
lane :deploy do
gradle(task: "clean bundleRelease")
upload_to_play_store(
track: "internal",
release_status: "draft",
skip_upload_apk: true,
skip_upload_metadata: true,
skip_upload_changelogs: true,
skip_upload_images: true,
skip_upload_screenshots: true,
)
end
AAB をアップロードできるように bundleRelease
にしたり
お試しなので穏当に内部テスト版としてアップロードするようにしてみます。
3-3. Fastlane でのデプロイ
fastlane deploy
を行いデプロイを実行します。
Google Api Error: 〜
とエラーが出ず Successfully finished the upload to Google Play
とリリースが作成されていれば OK です。
エラーが出た場合は権限やリリース状態などをチェックします。
権限が正しく設定されてないと The caller does not have permission
というエラーが出ます。
エラーメッセージに沿って試行錯誤する必要があります。
Google Play Console で内部テスト版にいい感じで下書きリリースが追加されていれば OK です:
以上です。