Choose by destination
| Destination | Typical output |
|---|---|
| Direct device test | APK |
| Supported non-Play distribution | Format required by that store/channel |
| Google Play app-bundle release | AAB |
| Device-specific bundle testing | APK set generated from the AAB |
The Flutter deployment guide and Android App Bundle guide explain the output roles.
Use explicit commands
flutter build apk --release
flutter build appbundle --release
For per-architecture APK distribution, Flutter documents --split-per-abi. That produces separate architecture APK outputs; it is not the same as manually distributing a base APK without its required configuration splits.
Keep configuration equivalent
Compare the same flavor, entry point, version, signing configuration and dependencies. Otherwise, differences in size or behavior may come from build configuration rather than the packaging format.
Record the output path printed by the build. Do not upload a stale artifact from an earlier run.
Test the delivered package
A locally installed APK and a Play-generated device APK can differ in signing and delivered resources/native libraries. Verify sign-in, billing, plugins and asset loading through the intended distribution path.
An AAB accepted by an upload interface has not yet proven that every supported device receives a working installation.
Inspect without changing signed output
Use APKLint's Flutter and AAB tools to review package identity, structure and relevant metadata. Do not unzip, delete files and rezip a signed release as a size optimization; rebuild from source with supported settings.
Keep the AAB/APK, build logs and symbols together. The format choice should follow distribution requirements and testing needs, not a blanket belief that one extension automatically makes the app faster or more secure.
Sources and further reading
Reference review: 22 September 2026. Examples illustrate the workflow; check your installed versions, release artifact and account-specific Console requirements before applying them. This guide is not a claim that APKLint executed your project or verified your private account.



