LoginSignup
21
13

More than 5 years have passed since last update.

[WIP]怖くないAppBundle:AppBundleでのGoogle Play自動アップロードに移行する

Last updated at Posted at 2018-06-30

AppBundleを使ってアプリを小さくしたい

アプリの大きさによってインストールの割合が小さくなるのは新興国だけではないとGoogle I/O Recapで言及されていましたし、このようにアプリを小さくしたいですよね?
https://developer.android.com/platform/technology/app-bundle/ より

image.png

しかし、署名の仕組みを移行すると元に戻れなかったりとかして、恐怖を感じますよね?感じません?

とりあえず怖くなくなるために、HelloWorldアプリを作ってから移行するまでをがんばってみようかと思います。
11825340335296888036.png

まずapkを普通に自動リリースする

自分のところのアプリの環境と揃えるために、まず自動リリースの環境を整えています。ここは飛ばしても構いません。

環境構築

まずGoogle Playでこのアプリをapkとして普通に公開しておきます。

自分のところでは自動でリリースしているので、まずはその環境を作ります。(同じ流れを作りたいので。)
https://github.com/Triple-T/gradle-play-publisher
READMEにあるようにサービスアカウントを作ってあげます。(省略)

サービスアカウントキーを作ります。
image.png
作ったサービスアカウントを選択してjsonをダウンロードします
image.png

こちらのREADMEの手順でbuild.gradleに記述します
https://github.com/Triple-T/gradle-play-publisher#installation

コミットはこちら
https://github.com/takahirom/bundle-auto-release-sample/commit/161368204d470ba84d1bcd365a970bb6fd367de4

Google Playから画像などをダウンロード

このコマンドでGoogle Playから画像などをダウンロードします。
./gradlew bootstrapReleasePlayResources

コミットはこちら
https://github.com/takahirom/bundle-auto-release-sample/commit/cafbb3094b0d617eb160883e5211e235a860225d

リリースする

./gradlew publishApk
上がりました。
image.png

そこから手動で製品版としてリリースします。

image.png

Google Play App Signingに移行する

AppBundleを使うためには Google Play Signingに移行する必要があります。
まず今まで使っていたkeystoreをGoogle Playにアップロードします。

Play Console左のアプリの署名をクリックします。
image.png

こんな感じのダイアログが出てきます。合意できるのであれば合意します。
image.png
ちなみに詳細はこのページに飛びます
https://support.google.com/googleplay/android-developer/answer/7384423

このページに飛びます。
image.png
スクロールすると以下のように選択できます。
image.png
アプリ署名鍵をエクポートしていないので、2番目を選択してPEPKツールをダウンロードしてjavaから始まるコマンドを入力します。
image.png
そうするとencrypted_private_key_pathができるので、それをアップロードして登録します。

これでGoogle Play App Signingが有効になりました。
image.png

何もbuild.gradleを変えずにバージョンだけを上げて、apkとして次のバージョンをアップロードしようとしてみます。

./gradlew publishApk
アップロードされました。 超簡単だった😎
image.png
普通にそのままリリースできます。

今はアップロードキーとGoogle Play側での署名のキーが同じ状態になっています。

ここで実験用にminSdkVersionを1つ上げて./gradlew publishApkしておきます。
みなさんの現場では公開したままになっているminSdkバージョンが古いAPKもあるんじゃないかなと思います。とりあえずそれの確認もしたいのでバージョンを上げて両方アップロードしておきました。

// すごくどうでもいいんですが、作ったままのhello worldの画像だと、全く同じ画像のアプリがあるので、リリース弾かれるみたいです。気をつけてください。

image.png

Bundleを手動でアップロードしてみる

バージョンを上げて、以下コマンド。
./gradlew bundleRelease

aabファイルができました。
image.png

aabファイルをとりあえずBetaチャンネルにアップロード!
image.png
こんなアプリでも9.3%削減できるらしい
image.png
なぜかよくわからなかったけど、以前のapkを保持を押す必要があった。
image.png
このBetaチャンネルのapkをリリースします。
image.png

こんな感じになっています。

image.png
あれ、これバージョン7のapk無効にしなくていいの、、?無効にしなくてもリリースできてしまいました。どういうユーザーにバージョン7がリリースされるかは謎ですが、バージョン6など、ちゃんとminSdkバージョンが古いapkも維持されるっぽいです。
image.png

AppBundleの自動リリース

もうできると思ってたんですが、gradle-play-publisher側がもう少しできそうなので、少し待ってみます
https://github.com/Triple-T/gradle-play-publisher/issues/262

21
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
13