AAB vs APK: What Google Play Actually Requires for Closed Testing
A surprising number of first-time publishers spend a day installing their APK on a dozen test phones over USB before realizing none of it does anything for their closed testing requirement. The distinction between an APK and an AAB isn't cosmetic here — it decides whether a "test" counts at all.
What each format actually is
APK (Android Package) is the final, installable app file — the thing that ends up on a device. AAB (Android App Bundle) is what you actually upload to Play Console: a publishing format containing all your app's compiled code and resources, from which Google Play generates optimized APKs for each specific device that installs it. Since August 2021, Google Play has required new apps to be published as AABs, not raw APKs.
Why sideloading an APK doesn't count
Installing an APK directly onto a device — via adb install, a downloaded file, or a third-party store — happens completely outside Google Play's own systems. The 12-tester requirement is specifically about testers installing your app from the Play Store, through a closed testing track, under an account that opted in. A device with your APK sideloaded onto it isn't visible to Play Console as a tester at all, no matter how thoroughly someone uses the app on it.
This is one of the more expensive mistakes to make late: it's not a settings fix, it's redoing the actual test — with real Play Store installs — from zero.
What you actually need to upload
- A signed AAB, built and signed with your app's upload key (or through Play App Signing, which Google manages for you and is the default for new apps).
- Uploaded to a closed testing track in Play Console — not attached to an email, not hosted on your own server for manual download.
- Testers install it exclusively through the opt-in link and the Play Store app, which is what generates the "opted in" status covered in our post on what opting in actually means.
Common build-tool gotchas
- Expo / React Native (EAS Build): use an AAB build profile for production/closed testing submissions — the default development build profile often produces an APK meant for local testing, not Play Console upload.
- Flutter:
flutter build appbundle, notflutter build apk, for anything headed to Play Console. - Native Android (Gradle):
./gradlew bundleReleaseproduces the AAB;assembleReleaseproduces an APK — easy to run the wrong one out of habit.
Once your AAB is uploaded and the closed testing track is live, the opt-in link is all a testing service needs — our testers install it exactly the way a real tester would, from the Play Store, on physical devices.
See how it works — from $24 →FAQ
Does sideloading an APK count toward Google Play's 12-tester requirement?
No. Only installs made through the Play Store via a closed testing opt-in link count. ADB installs and sideloaded APKs are invisible to Play Console's tester tracking.
Can I still upload an APK to Google Play at all?
New apps have been required to publish as an Android App Bundle (AAB) since August 2021 — raw APK uploads are no longer accepted for new app submissions.