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でアップロードしたほうがいいかもしれませんね。




今後もプログラミングや英語に関した記事を書いていきたいと思いますので、よければサポートよろしくお願いします!