Androidアプリ開発 App Bundleをローカルでテストする【プログラマ】
FINE Knowledge Board(社内)よりエンジニアスタッフの投稿
概要
今まで、AndroidアプリのROMファイルの拡張子は.apkとなり、このアプリを実機インストールする場合は、端末上でそのファイルを選択するだけで、
インストーラーが立ち上がってインストールすることができた。
しかし、AppBundleファイルの拡張子は.aabとなる。
このファイルは端末上で選択してもzipファイル同様に解凍する挙動となる。
つまり、現段階では既存のインストーラーではAppBundleのファイルをインストールすることができない。
既存のインストーラーが使用できないため、ローカルでテストするためには、ビルドツールを用いて、PCからコマンドでインストールする必要がある。
ビルドツール
ビルドツールにはGoogleが提供する「bundletool 」というツールを使用する
Git:https://github.com/google/bundletool/releases
手順
ビルドツールを用いても.aabを実機にインストールすることはできない。
実機インストールするためには、インストール可能な形式「.apks」に変換する必要がある。
そのため、インストールするための手順としては以下のようになる
以降にて各手順の詳細を説明する。
>① .aab形式を.apks形式に変換
.aab形式を.apks形式に変換するためにはbundletool build-apksコマンドを使用する。
bundletool build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks
実機インストールするためには署名情報を含める必要があるため、以下のようになる。署名情報を指定しない場合、bundletool はデバッグ鍵を使用して APK の署名を試みる。
bundletool build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks
--ks=/MyApp/keystore.jks
--ks-pass=file:/MyApp/keystore.pwd
--ks-key-alias=MyKeyAlias
--key-pass=file:/MyApp/key.pwd
上記のままコマンドを行うと全てのアーキテクチャに対応された形となる。
特定の端末に合わせたアーキテクチャのみにする場合は端末の情報が必要となる。
実機インストールの流れとしては端末が接続されている前提となるため、
「--connected-device」でよい。
※ただし、1台のみ接続されている前提
PlayAssetDeliveryなど、アプリを分割している場合には
上記に「--local-testing」を追加することで、ローカルでテストすることができる。
※リソースがサーバーでなくローカルにある形式
>② .apks形式ファイルを端末にインストール
以下のコマンドを入力し、処理が完了すると、端末へのインストールが完了する。端末へのインストールが完了する。
bundletool install-apks --apks=/MyApp/my_app.apks
まとめ
以下のようにコマンドを行うことで、
AppBuindleのローカルでのテストができる。
bundletool build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks
--ks=/MyApp/keystore.jks
--ks-pass=file:/MyApp/keystore.pwd
--ks-key-alias=MyKeyAlias
--key-pass=file:/MyApp/key.pwd
--connected-device
--local-testing
bundletool install-apks --apks=/MyApp/my_app.apks
出力ファイルの上書きができる「--overwrite」フラグなど他にも機能は存在するため、詳細は公式サイトを参考にする。
このような流れになっている理由として、
AppBundleの機能が関わっているからと思われる。
アプリが、以下のような複数のアーキテクチャに対応している場合
x86, x86_64, armeabi-v7a, arm64-v8a
APKでは全てのアーキテクチャに対応されたファイルをインストールするのに対し、AppBundleでは端末に必要なアーキテクチャのみ対応されたファイルをインストールする。
「端末に最適なアーキテクチャのみ対応されたファイル」を作成する必要があるため、手順が分割されているのではないかと考えられる。
また、以下の点に関しては注意が必要となる。
参考
大阪のゲーム開発会社ファインでは一緒に働くアプリプログラマーを募集しています!
募集要項はコチラを御覧ください!
この記事が気に入ったらサポートをしてみませんか?