Gradle Play PublisherのAndroid App Bundle Supportがもうすぐリリースされそう
Gradle Play Publisher?
Gradle Play PublisherはAPKのGoogle Play Developerコンソールへのアップロードを自動化できるGradleプラグインです。
APKのアップロード以外にもPlay Storeに掲載する各種メタデータの管理も一括で行うことができます。 アプリに関する各言語向けデスクリプションやストア画像などをバージョン管理システムで管理できるようになりますし、とても便利です。 Gradleプラグイン化されていることで、CircleCIやBitriseのようなCIサービスから実行するのも簡単なのも嬉しいポイントですね。
Android App Bundle
Android App BundleはGoogle I/O 2018で発表された新しいAndroidアプリのアップロードフォーマット(aabファイル)で、アプリのコンパイル済みのソースコードとリソースを全て含みます。APKと異なるのは、APKの生成と署名がGoogle Play側で行われる点です。その仕組上Google Play App Signingの有効化が必須となります。
Android App Bundleに対応することで、ユーザーがアプリをインストールする端末のコンフィグレーションに最適化されたAPKが生成されるようになり、不要なリソースやコードを含まないことでダウンロードするAPKサイズが小さくなります1。この新しいアプリの配布の仕組みをDynamic Deliveryと呼びます。
また、Dynamic feature modulesというモジュールをプロジェクトに追加することでアプリの機能とリソースを分離し、必要になった時に動的にダウンロードすることが可能になります。初回のダウンロードには使用頻度の高い機能のみを含めることでAPKのサイズをさらに削減できます。(2018/10現在でβ)
Android App Bundleの概要は次の動画がわかりやすくオススメです。
Gradle Play PublisherのAndroid App Bundle Support
aabファイルのアップロードにGradle Play Publisherが対応していませんでしたが2、バージョン2.0.0でついにサポートされます。
gradle-play-publisher/CHANGELOG.md at master · Triple-T/gradle-play-publisher · GitHub
READMEはすでに2.0.0のものに更新されています。./gradlew publishBundle
でaabファイルのアップロードを実行できるようですね。
CHANGELOGではto be releasedとなっているので近日中にリリースされそうです。
参考
- https://github.com/Triple-T/gradle-play-publisher
- https://developer.android.com/guide/app-bundle/
- https://developer.android.com/studio/publish/app-signing#google-play-app-signing
-
最適化されたAPKが生成されるのは5.0以上で4.4以下ではMultiple APKとしてもっとも適切なAPKが配信されます。この場合全ての言語別のリソースが含まれます。↩
-
Fastlane supplyは先に対応していました。↩