aabファイルからapkを取り出す
動作確認環境
macOS Ventura 13.2.1
手順
1. bundletool の install
$ brew install bundletool
2. aabからapkのセットを生成
$ bundletool build-apks --bundle={.aabファイルまでのフルパス} \ --output=app.apks \ --ks={Key store path} \ --ks-pass=pass:{Key store password} \ --ks-key-alias={Key alias} \ --key-pass=pass:{Key password}
名称はAndroid Studioでそれぞれ該当する箇所
補足
--output
はapp.apks
じゃなくて任意の名前でもOK- 指定必須なのは
--bundle
と--output
のみ
3. zipにして解凍
--output
で指定したapp.apks
というファイルが生成されるのでzipにしてから解凍
$ mv app.apks app.apks.zip $ unzip app.apks.zip -d app.apks
app.apks
ディレクトリにsplits/
とtoc.pb
が展開されるのを確認
$ ls
splits toc.pb
4. apkを端末にインストール
※ Android端末にファイル転送を許可してPCと接続している前提
$ bundletool install-apks --apks=app.apks
エラーが出ず、Android端末にアプリがインストールされていれば成功
トラブルシューティング
bundletool install-apks --apks=app.apks
をしたときにError: INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package xx.xx.xxxx signatures do not match previously installed version; ignoring!
というエラーが出る
すでに端末にインストールされているアプリのBuild Variantsが異なる場合に出るっぽい
自分の場合はdebugアプリがすでに入っている端末にreleaseアプリを入れようとして上記エラーが出た
端末に入ってるアプリを消してから再度bundletool install-apks --apks=app.apks
をして解決
参考
株式会社エイルシステムではWebエンジニア・モバイルアプリエンジニアを募集しています。
実務経験がなくてもOKです。ご興味のある方は弊社HPよりご連絡ください。