Apple StoreにXcode Cloudが登場してから、iOS / macOSの世界ではアプリのCI/CDのハードルが一気に下がった。一度その快適さが当たり前になってしまうと、Androidアプリのリリースを手動で行うのが余計にストレスに感じられるようになってしまったので、CI/CD環境を作った。
残念ながらGoogle PlayにはまだXcode CloudにあたるようなマネージドなCI/CD環境はないが、公式APIが用意されているのでGitHub Actionsなどと組み合わせれば自力でCI/CD環境を作ることはできる。ただし、CI/CD環境を構築するにあたって押さえておかなければいけない使い方・仕組みが色々ある。一度に説明しようとすると多少ハードルが高いので、まずはAPIから。
Google Play Developer APIs
https://developers.google.com/android-publisher
https://developers.google.com/android-publisher/api-ref/rest
Google Playでは、バイナリのアップロードに限らずスクリーンショットや説明文の変更など、リリースまでの間に必要な多くの操作に対応したGoogle Play Android Developer APIが提供されている。GitHub Actionsを含むCI/CDでリリースを制御したい場合は、基本的にこの公式APIを使うことになる。
世の中にはサードパーティのラッパーが用意されているので、直接このAPIの仕様を把握しておく必要はそこまでないが、APIの呼び出し方は知っておく必要がある。
Google Cloudプロジェクトとサービスアカウントの準備
Google Play Developer APIsをGitHub Actionsから使用するには、Google Cloudのプロジェクトとサービスアカウントを準備する必要がある。
https://developers.google.com/android-publisher/getting_started
また、プロジェクトの設定でGoogle Play Developer APIを有効にしておく。
Google Play側でのアクセス許可
サービスアカウントからAPI経由でGoogle Play上のアプリを操作できるようにするには、Google Play側でアクセス権の設定をする必要がある。
Google Play上のUsers & Permissions(ユーザーと権限)で、上で作成したサービスアカウントのメールアドレスを入力して招待する。ここは最近仕様が変わったようで、古い記事では別の画面・方法で設定するように案内されていることがあるので注意する。