Android App Bundle(AAB)をJenkinsで自動アップロードできるようにしてみる

Androidのビルドから内部テスト公開をコンソールでぽちぽちする….
そんなの馬鹿らしいと思い自動ビルド環境を組んでみた話。

ネックになったのが作成したapkをGoogle Play Consoleにアップロードするやり方。

調べてみるとGoogle Play Developer Publishing APIというのがある。

Google Play Developer Publishing API

https://developer.android.com/google/play/developer-api?hl=JA

サービスアカウントを作り、API経由でアップロードできるそうだ。

公式ドキュメントはわかりにくければ参考サイトは結構出てくる

この辺とか
https://qiita.com/Horie1024/items/0d3d50405f0b4bef1792

とりあえず公式サンプルがpythonだったのでpythonで入れると(認証周りで四苦八苦しつつ)なんとか導入できた

https://github.com/googlesamples/android-play-publisher-api

Android App Bundle(AAB)問題

問題となったのが最近利用可能になった、Android App Bundle。

https://support.google.com/googleplay/android-developer/answer/9006925?hl=ja

ざっくり言うとアプリサイズが軽くなるのでメリットだらけだが、公式サンプルだとアップできない問題が発生。

そのままファイルをapkからaabにすると下記のようなエラーが…

APK cannot be analyzed using aapt dump badging.
googleapiclient.errors.UnacceptableMimeTypeError: application/x-authorware-bin

ようわからん…とリファレンスを読み込んでいくとどうもエンドポイントが変わっているらしかった。

なのでエンドポイントを変更しアップロードするとうまくいけた。

実装部分なのでよかったら使ってみてください。

こんな感じで呼び出せばよし

python bin/upload_apk_service_account.py \
${GOOGLE_API_SERVICE_ACCOUNT_EMAIL} ${GOOGLE_API_SERVICE_ACCOUNT_KEY} \
${BUNDLE_ID} ${APK_FILE} "${VERSION_NAME}"

1件の返信

  1. nariya より:

    なんど見ても bundlesなんて公式documentに書いてないやん…
    でもbundlesってsample見つかるし、みんなどこ見てるのかとか悩んでたら英語版のドキュメントの方には書いてあって日本語には無いのねこれ….
    https://developers.google.com/android-publisher/api-ref/rest/v3/edits.bundles/upload
    でも参考になりましたorz

コメントを残す

メールアドレスが公開されることはありません。