のにっき

【Android】aabファイルを実機にインストールするbatファイル作成

Androidアプリを公開する際に必ず警告される「Android App Bundle」の項目。
対応してみたのですが、
「aab」ファイルを実機にインストールする方法について、
ネットに情報が少なくまとまっていなかったので
今回、まとめようと思いました。

対応した警告の内容

f:id:apuridasuo:20190925131202p:plain
図:アプリリリース時の警告
「AndroidAppBundleでサイズを小さくしよう!」という事でした。
個人製作のアプリなので100MBも超えたことが無かったので
小さくなろうが誰も気にしないだろうと思い、無視していました。
今回暇つぶしに対応してみたのですが、ビックリしたのが
ビルドして出力されるファイルの拡張子が「.apk」ではなく「.aab」になってる!
という事でした・・・
この「.aab」ファイルを実機にインストールする方法が全く分かりませんでした!
ネットで調べても、細かい部分は載っているのですが
初歩的な部分が全くなかったので素人には四苦八苦状態でした。
苦しみながらbatファイルを作って一発インストールできるまでいったので、
同じ様に困っている方がいましたら是非ご利用ください。

Android App Bundle」を利用して「aab」ファイル作成

これは簡単です。

f:id:apuridasuo:20190925132202p:plain
図:ビルド設定
上図のように、「Build App Bundle(Google Play)」にチェックを入れるだけです。
これで、「AndroidAppBundleでサイズを小さくしよう!」は達成です!
実機デバッグを行わない方は、できたファイルをアップすればOKです。

「aab」ファイルを実機にインストールする方法

  1. 最新の「BundleTool」をダウンロード
  2. github.com 上記URLから、最新の「 bundletool-all-○.○.○.jar 」ファイルをダウンロード
    ※○=バージョン情報
    落としてきたファイルは好きなところに置いて大丈夫です

  3. batファイルを1.のファイルと同階層に作成
  4. 落としてきた「 bundletool-all-○.○.○.jar 」と同じ階層に
    適当なファイル名で「.bat」ファイルを作成して下さい。
    batファイルに記入するコードは後ほど説明します
  5. 「.aab」ファイルを1.のファイルと同階層に移動
  6. Unityでビルドしてできた「.aab」ファイルを
    batファイル等と同階層のフォルダに移動させてください
    f:id:apuridasuo:20190925140231p:plain
    図:フォルダ構成参考例
  7. batファイルのコードを記入
  8. まずは、以下をコピペして下さい

    @echo off
    cd /d %~dp0
    @rem ↓↓必要事項を記入↓↓
    set File_Bundle=落としてきた「bundletool」のファイル名【例】bundletool-all-0.10.3
    set File_App=Unityから出力したアプリのファイル名【例】TestAppName
    set Path_Key=アプリで使っている「.keystore」ファイルのパス【例】D:/Unity/TestAppName/user.keystore
    set Pass_Key=パスワード
    set Alias=エリアス名
    set Pass_Alius=エリアスのパスワード
    @rem ↑↑必要事項を記入↑↑
    @rem ----変数設定
    set Path_Now=%~dp0
    set Path_Get=%Path_Now%%File_App%.aab
    set Path_Out=%Path_Now%%File_App%.apks
    set Path_Out_Srch=%File_App%.apks
    set File_Bndle_Fix=%File_Bundle%.jar
    @rem ----apks作成済みなら削除
    if exist %Path_Out_Srch% ( del %Path_Out%)
    @rem ----apks作成処理
    java -jar %File_Bndle_Fix% build-apks^
     --bundle=%Path_Get%^
     --output=%Path_Out%^
     --ks=%Path_Key%^
     --ks-pass=pass:%Pass_Key%^
     --ks-key-alias=%Alias%^
     --key-pass=pass:%Pass_Alius%
    @rem ----apksをインストール※USB接続している実機が対象
    java -jar %File_Bndle_Fix% install-apks^
     --apks=%Path_Out%\
    pause \
    

    次に、コードの中の、各自記入しないといけない部分があるので解説します。
    ※ コードの「@rem ↓↓必要事項を記入↓↓」の部分です

    ・set File_Bundle=
    ・set File_App=

    拡張子を除いたファイル名を記入

    f:id:apuridasuo:20190925142322p:plain
    図:記入内容

    ・set Path_Key=
    ・set Pass_Key=
    ・set Alias=
    ・set Pass_Alius=

    キーファイル(Unityの「Player Settings→Publishing Settings→Keystore」項目)
    エリアス名(Unityの「Player Settings→Publishing Settings→Key」項目)
    両パスワードを記入

    f:id:apuridasuo:20190925142831p:plain
    図:パス系記入欄記入内容
    記入例

    @rem ↓↓必要事項を記入↓↓
    set File_Bundle=bundletool-all-0.10.3
    set File_App=MusicTempoCnv
    set Path_Key=D:\Unity\CmnKey\user.keystore
    set Pass_Key=11110000
    set Alias=username
    set Pass_Alius=00001111
    @rem ↑↑必要事項を記入↑↑
    

    これで準備はOK!
    後は、AndroidをUSBに接続して作成したバッチを実行して下さい。
    apksという拡張子のファイルが作成されて、その後に実機にインストールされます。

これで、特に難しいこともなくaabファイルで
実機デバッグを行うことができます。

ただ、調べていて思ったのですが、
「bundletool」の詳細情報が無さすぎるので、
そもそも、abbファイルを手動で実機にインストールすること自体
普通は行わないのではないか?

と思ってしまいました。。。

自分が遠回りなことをしている気しかしないので、
こんな事しなくても、もっと簡単に実機デバッグできるし!
という方法があったらさわりだけでも誰か教えてください!!