Cordovaでaabビルドをしてみる
普段はnoteで英語について書かせてもらっているのですが、今回から別のカテゴリーでプログラムについての忘備録を書いていこうと思うのでよろしくお願いします。
英語コラムだけ読みたい人はそっちのマガジンだけフォローしてもらうようお願いします。
ついにCordovaでaabビルドが可能に
さてタイトルのとおりですが、Cordova Androidが8.1.0になってから正式にaabビルドに対応しました。
これまではapkでビルドしてストアにアップロードしていたので、毎回「aab形式にするとファイル容量が小さくなります」というようなアラートや警告が出ていて鬱陶しく感じていたのでありがたいです。
ビルドの仕方は現在(2019年9月24日)はドキュメントのdevページにだけ記載されています。
実際のコードとしては以下のようになります。
cordova build android --release -- --keystore=../my-release-key.keystore --storePassword=password --alias=alias_name --password=password --packageType=bundle
ここで--releaseと--keystoreの間に「--」が入っていますが、これがないとaabでビルドされません。
ドキュメントには以下のような記述があります。
Note: You should use double -- to indicate that these are platform-specific arguments,
とりあえず忘れずに付けましょう。
aabファイルのインストール
無事に生成できたとしてもadbコマンドでaabファイルを端末にインストールできません。
youtubeで詳しい解説動画を公開しました。
時間がある方はこちらを御覧ください。
まずはGoogleが配布しているbundletoolをPCやMacにインストールする必要があります。
Macの場合はbrewコマンドで楽にインストールできます。
brew install bundletool
参考:bundletoolのドキュメント
https://developer.android.com/studio/command-line/bundletool
そしてコマンドラインでaabファイルからapksファイルを生成します。
bundletool build-apks --bundle=app.aab \
--output=app.apks \
--ks=keystoreのファイルパス \
--ks-pass=pass:ストアパスワード \
--ks-key-alias=キーエイリアス \
--key-pass=pass:キーパスワード
ここで間違えそうなのはapkではなく「apks」、パスワード指定する際に忘れずに「pass:」を忘れがちなので注意です(僕だけかな?)
その後、次のコマンドで端末にインストールです。
bundletool install-apks --apks=app.apks
ただCordovaで対応したばかりなのでいろいろバグがあるかもなので、もうしばらくはapkでアップロードしたほうがいいかもしれませんね。