New Feature: Publish Android App Bundles

In August 2021, Google Play will require that all new apps are published as Android App Bundles (AAB) instead of APK. When building an Android app as a single APK, all the code and resources are included so that the app will work on any device. This is good for our users since they can share the app offline. However, for most users who are installing from Google Play, the extra code and resources waste space on their device. By publishing an AAB, Google can deliver just the code and resources needed for a device. This is only for new apps. Existing apps can continue to publish APKs.

Scriptoria has been updated to support publishing Android App Bundles. When Google Play’s requirement goes into affect, the workflows will be changed to require new apps to be published in Android App Bundle format.

The instructions in the workflow forms have been updated to say what has to be done with Android App Bundles. An APK is still built to be used for testing during the Verify and Publish step of the workflow.

App Signing

You may get a warning when upload the AAB about the keystore used to sign the app:

For new apps, Android App Bundles must be signed with an RSA key.

If you are using a “old” key, you will need to create a new upload keystore to sign AABs during the build. This can be done in the App Builder using Tools > Create New KeyStore…

See Use Play App Signing for more details on how this will affect how apps are signed.

UPDATE (8/5/21): When publishing a new app, Google Play is failing during the Create App Store Entry step if you use a keystore that was used to sign an existing APK in Google Play. You will need to give us a new keystore to add to your store and you will have to set BUILD_KEYSTORE in your publishing properties. See Publishing Properties documentation for further details on this property.

Testing AAB

If you want to use the AAB to test you app (since that is what is actually being published), it is possible but takes some extract steps. When the app is installed from Google Play to a device, it actually generates 1 or more APKs (depending on the Android version of the device) that are specific to that device. This process can be simulated by a Google library called bundletool. A link to a document explaining how to do this is provided in the Verify and Publish step of the workflow.

UPDATE (8/3/21): Since the writing of the article, we decided to also create an APK for testing. You shouldn’t need to test with the AAB. One thing to note, if you have the “Share installer file” feature turned on, it will be available in the APK, but it will not be available in the AAB.

Early Opt In

To opt in to using Android App Bundles before it is required for all new apps, you can set BUILD_ANDROID_AAB to 1 in the publishing properties in the App Builder.

Thanks for the update and helpful instructions, Chris!

Update (8/3/21): Google now requires publishing new apps with AABs. We haven’t change Scriptoria yet to automatically set the BUILD_ANDROID_AAB publishing property so that will need to be set when publishing new apps.

So if we set the BUILD_ANDROID_AAB to “1” does that mean the app in the Google Play Store will be converted and from now on be in the AAB format? And once converted is this BUILD_ANDROID_AAB needed? What would happen if this publish property was removed?

@Bill_Dyck,

For existing apps, you need to go through a migration process. See Android App Bundles: Updating An Existing App for details.

Google Play has just switched over to requiring AABs. Some of the Google Play Developer Console UI has changed so I will need to update instructions.

Once you change to AAB, you will need to leave the BUILD_ANDROID_AAB publishing property. If you remove it, Scriptoria would try to publish an APK and it will fail.