APK and AAB
Every successful Android build produces two files. They are the same app — the APK is repacked from the bundle — and which you want depends on who is installing it.
An iOS build produces one file instead, an .ipa, which nobody installs by
hand: it goes to TestFlight. See How iOS builds work.
Which to use
Section titled “Which to use”.apk | .aab | |
|---|---|---|
| Full name | Android Package | Android App Bundle |
| Install directly on a phone | Yes | No |
| Upload to Google Play | No | Yes |
| Send to a tester | Yes | No |
| Contains every screen density and architecture | Yes | Yes, split by the store on delivery |
| Size | Larger | Smaller as delivered, because Play sends each device only what it needs |
Use the APK to put the app on a phone yourself, to share with your team, or to hand to members directly.
Use the AAB for Google Play. Play has not accepted APK uploads for new apps since 2021.
Installing the APK
Section titled “Installing the APK”- Transfer it to the phone — email, cloud drive or USB.
- Open it on the device.
- Allow installs from that source when Android asks.
- Open the app.
Android warns about apps that did not come from Play. That warning is about the source, not the app, and it is expected for a build you compiled and installed yourself.
Before you plan an AAB upload
Section titled “Before you plan an AAB upload”Whether the .aab is uploadable depends on what signed it. With no upload key
set up, your build is signed for testing — installable on any phone, refused by
Play. See Android signing and the Play Store.
When it does not work
Section titled “When it does not work”| Symptom | Cause | Fix |
|---|---|---|
The phone will not open the .aab | App bundles are not installable files | Download the .apk instead |
| App not installed on an older device | An earlier build with a different signature is already installed | Uninstall the old one first |
| Play rejects the upload as debug-signed | That build was signed for testing, not with your upload key | Android signing |
| The APK installs but shows a white screen | The app cannot reach your site | Confirm the site is public and serving over HTTPS |