Since Google made the Android App Bundle (AAB) the mandatory standard for new apps on the Play Store, developers have faced a common headache: How do you test an AAB file?
Unlike the traditional APK, you can't just drag and drop an .aab file onto your phone to install it. This guide explores the most effective ways to test Android App Bundles in 2026, ensuring what you ship is exactly what your users get.
What is an Android App Bundle (AAB)?
An AAB is a publishing format, not an install format. It contains all your app's compiled code and resources but defers the APK generation and signing to Google Play.
Why the switch? Size savings. Google Play uses the AAB to generate optimized APKs that only contain the resources (language, screen density, CPU architecture) needed for a specific user's device.
Method 1: Google Play Internal App Sharing (Recommended)
The easiest way to test an AAB is to let Google do the heavy lifting using Internal App Sharing.
- Open the Google Play Console.
- Navigate to Setup -> Internal App Sharing.
- Upload your
.aabfile. - Copy the generated link and share it with your testers.
Before the link will install anything, each tester has to turn on Internal app sharing once on their device: open the Play Store app -> Settings -> About, tap the Play Store version row seven times, then enable the Internal app sharing toggle under General.
Pros: mimics the real Play Store installation process exactly.
Cons: requires Play Console access and waiting for upload processing.
Method 2: Using Bundletool (Command Line)
If you want to test locally without uploading to Google servers, you need bundletool. This is the official tool Google uses under the hood.
Step 1: Install Bundletool
Download the latest bundletool-all-[version].jar from the GitHub repository.
Step 2: Generate APKs from AAB
Run the following command in your terminal to create an .apks archive (note the 's'):
java -jar bundletool.jar build-apks \ --bundle=path/to/your/app.aab \ --output=path/to/your/app.apks \ --ks=path/to/keystore.jks \ --ks-pass=pass:your_keystore_password \ --ks-key-alias=your_key_alias \ --key-pass=pass:your_key_passwordStep 3: Install on Connected Device
First enable USB debugging: on the device open Settings -> About phone and tap Build number seven times to unlock Developer options, then turn on USB debugging under Settings -> System -> Developer options. Connect the device by USB and run:
java -jar bundletool.jar install-apks --apks=path/to/app.apksbundletool reads the device spec and pushes only the configuration APKs that device actually needs. To skip building the full APK set and target the attached device alone, add --connected-device to the earlier build-apks command.
Method 3: Extract Universal APK
Sometimes you just want a single APK file to share via BetaDrop or email. You can force bundletool to create a "universal" APK that contains resources for all devices (like the old days).
java -jar bundletool.jar build-apks \ --mode=universal \ --bundle=path/to/app.aab \ --output=path/to/universal.apks \ --ks=...The .apks archive is just a ZIP, so extract the standalone APK with:
unzip path/to/universal.apks -d universal_outputThe installable file lands at universal_output/universal.apk. From there you can distribute it like any normal APK — see our guide on how to share Android APK files for testing for the fastest routes to your testers.
Sharing Your Universal APK with BetaDrop
Once bundletool has produced a universal APK, you can get it onto real phones in seconds. Upload the APK to BetaDrop (builds up to 512 MB) and you get an instant over-the-air install link plus a QR code — testers install straight from their phone browser, with no Play Store, tester accounts, or USB cables required. Before you send it out, it is worth opening the file in the APK inspector to confirm the package name, version code, and requested permissions match the build you intended to ship.
Summary
While AABs add a slight layer of complexity to the testing process, tools like Internal App Sharing and bundletool make it manageable.
- For Quick Team Sharing: Use a Universal APK (extracted via bundletool).
- For Final QA: Use Internal App Sharing to ensure dynamic delivery works correctly.
- For Local Debugging: Use bundletool
install-apksdirectly to your device.
Frequently Asked Questions
Can I install an AAB file directly on my phone?
No, Android devices cannot install .aab files directly. You must convert the AAB into an APK set using a tool like bundletool or download the generated APK from the Google Play Console.
What is the format difference between AAB and APK?
An APK is an installable package containing all resources for a specific device configuration. An AAB (Android App Bundle) is a publishing format that contains all your app's compiled code and resources, which Google Play uses to generate optimized APKs for each user's device.
Is bundletool free?
Yes, bundletool is an open-source command-line tool provided by Google to manipulate Android App Bundles.
How do I share an AAB with testers?
The best way is to upload the AAB to Google Play Console (Internal Testing track) or use Internal App Sharing. Alternatively, extract the universal APK using bundletool and share that file directly.
How do I extract a universal APK from an AAB?
Run bundletool build-apks with the --mode=universal flag to produce an .apks archive, then unzip that archive to find a single universal.apk inside. This one APK contains resources for every device configuration, so it installs on any device and can be shared like a normal APK file.
What is the maximum size of an APK I can share for beta testing?
It depends on your distribution channel. If you extract a universal APK and share it through BetaDrop, the upload limit is 512 MB per build. Registered builds stay live for about 30 days, while anonymous guest links expire after 24 hours.
