環境
- Android Studio 3.4.2
Android App Bundleに対応すると何が嬉しいか
各端末で必要なサイズの画像、言語、ライブラリだけをダウンロードするようになるので、アプリによってはダウンロードサイズの大幅な削減が見込める。
とにかくAndroid App Bundleに対応する
ビルド時(「Build」→「Generate Signed Bundle/APK...」)に上(APKではなくAndroid App Bundle)を選ぶ。
書き出し時はいつもどおり。
初回は「Export encrypted key for enrolling published apps in Google Play App Signing」にチェックを入れておく。
書き出したファイルは「aab」(Android App Bundle)という拡張子になっている。
Export...にチェックを入れている場合は、ここに private_key.pepk
というのも入っている。
これをGoogle Play Consoleにアップロードする。
場所は「リリース管理」→「アプリの署名」。
後はいつもどおり「リリース管理」→「アプリのリリース」からアップロードし、リリースする。
とにかくAndroid App Bundleを実機にインストールする
aabファイルはそのままでは実機にadbコマンドでインストールできない。
そのため、少し違う方法を使う事になる。
- bundletool を利用する
- 「内部アプリ共有」を使う
bundletool を利用する
bundletool というまたもググラビリティの低い名前のツールがGoogle公式から提供されている。
まず、これのReleasesから最新のjar( bundletool-all-0.10.2.jar
など)をダウンロードする。
.bash_profile
あたりにこんな感じで書いておく。
alias bundletool="java -jar /path/to/bundletool-all-0.10.2.jar"
source ~/.bash_profile
するなりして反映。
まず、下記コマンドを実行する。
オプションはまぁ見れば分かると思う。
bundletool build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks \
--ks=/MyApp/keystore.jks \
--ks-pass=pass:PasSW0rD \
--ks-key-alias=MyKeyAlias \
--key-pass=pass:pAsSw0rD
すると細切れのapkをzipした apks というファイルが出来上がる。
zipファイルなので、拡張子をzipに変更すると解凍して細切れのapkを見る事ができる。
次に、下記コマンドを実行すると、良い感じに実機に合ったapkを作ってインストールしてくれる。
bundletool install-apks --apks=/MyApp/my_app.apks
「内部アプリ共有」を使う
Google Play Consoleにある機能を利用する。
「リリース管理」→「アプリのリリース」→「内部アプリ共有を管理」からhttps://play.google.com/apps/publish/internalappsharing/に遷移する。
そこからaabをアップロードして、「リンクをコピー」からアプリのダウンロード用のリンクをコピーする。
それをシェアすれば良いだけかと思いきや、もう一つハードルがある。
インストールしたい端末でPlayストアアプリを開く。
左上のハンバーガーメニューから「設定」を開く。
すると開発者オプションが有効になって「内部アプリ共有」メニューが表示されるので、これをON(スクショの状態)にする。
そうすると、先程コピーしたリンクを開いて遷移できるようになる。
なお、buildtoolと異なり、リリース済みのバージョンと同じバージョン番号になっている場合は、一度アンインストールして再インストールする事になる。
上記メニューが表示されていない場合は、Playストア自身のバージョンアップが必要な事がある。
「Playストアのバージョン」を1度タップするとバージョンアップがあるか確認できる。
Androidのバージョンが古すぎると(4.1系?)、そもそも「内部アプリ共有」が有効にできない事もある模様。