DeployGate では Android アプリのアップロード形式として、 APK ファイルの他に AAB ファイル (Android App Bundle) のサポートを行っています。
仕組み
DeployGateは、アップロードされた AAB からユニバーサル APK を生成して設定済みのアプリ署名鍵によって署名し、その APK を端末に配布します。Play Store に AAB をアップロードした際に行われる、端末ごとに最適化したAPKを生成する Dynamic Deliveryの配布方法とは異なる点にご注意ください。Dynamic Feature Module の Ondemand delivery など、 Google Play 特有の機能は2019年現在 Play Store 以外で利用することができません。
準備
AAB ファイルのアップロードはデフォルトでは無効となっております。有効化するにはアップロード対象のアプリにおいて、アプリ署名鍵を生成またはアップロードを行ってください。
対象アプリのアプリ署名鍵の生成またはアップロード
DeployGateは、予め保存されたアプリ署名鍵を用いて、アップロードされた AAB からユニバーサル APK を生成します。アプリ署名鍵の新規作成及び更新は、アプリ詳細画面内からアクセスできるアプリ署名鍵の管理ページから行えます。
既知の制限
対象のアプリが事前にアップロードされている必要があります
アプリ署名鍵を設定するには、アプリがDeployGateにアップロードされている必要があります。このため、アプリをDeployGateに初回アップロードする際にはAABファイルを用いることはできません。初回のみ、 APK ファイルによるアップロードを行う必要があります。
Dynamic Delivery 等の App Bundle 特有の機能は動作しません
DeployGate では google/bundletool を用いて、ユニバーサル APK を生成しています。したがって端末に配布される APK は端末ごとに最適化された APK ではなく、Ondemand Delivery や Conditional Delivery といった Custom Delivery は行えません。またユニバーサル APK に含める Dynamic Feature Module はマニフェスト内において `dist:include=true` と指定される必要があります。
App Bundle の機能を必要とする際は Play Store の Internal App Sharing 機能をお使いください。
端末最適化された APKS の配布
現在対応しておりません。
参考リンク
App Bundle について : https://developer.android.com/platform/technology/app-bundle
bundletool を用いたユニバーサル APK の生成について : https://developer.android.com/studio/command-line/bundletool#generate_apks
Dynamic Feature Modules のマニフェスト記述について : https://developer.android.com/studio/projects/dynamic-delivery#dynamic_feature_manifest
Internal App Sharing について : https://support.google.com/googleplay/android-developer/answer/9303479