Tutorial
How to Upload an AAB to Google Play Console: Step-by-Step Guide
July 12, 2025 · 5 min read
By the TesterBee Team, built by developers who have been through Google Play Closed Testing requirements
Before you can start Closed Testing, you need to upload your app to Google Play Console as an Android App Bundle (.aab). APK uploads still work but .aab is the modern standard — and Google Play uses it to generate optimized APKs for different device configurations.
Step 1: Build Your App Bundle
In Android Studio
- Open your project in Android Studio
- Select Build > Generate Signed Bundle / APK
- Choose Android App Bundle and click Next
- Select or create a keystore:
- Existing keystore: Navigate to your .jks or .keystore file, enter passwords
- New keystore: Create one — save it somewhere safe and back it up. If you lose this keystore, you cannot update your app on the Play Store.
- Select release build variant
- Check V1 (Jar Signature) and V2 (Full APK Signature) — both should be enabled
- Click Finish
Android Studio builds the .aab file. The default output location is app/release/app-release.aab.
Using Command Line (Gradle)
If you prefer the command line:
./gradlew bundleRelease
This requires your signing configuration to be set up in app/build.gradle:
android {
signingConfigs {
release {
storeFile file("your-keystore.jks")
storePassword "your-store-password"
keyAlias "your-key-alias"
keyPassword "your-key-password"
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
}
The output will be at app/build/outputs/bundle/release/app-release.aab.
Step 2: Verify Your Build
Before uploading, verify:
- Your app is signed with a release keystore, not the debug keystore. Debug-signed .aab files are rejected at upload.
- Your version code is higher than any previous version uploaded to this track. Version codes must increase monotonically.
- Your target API level meets Google’s current minimum (API 34 for new apps as of 2025).
Quick check using Android Studio: Build > Analyze APK (select your .aab) to inspect contents and verify the signing certificate is your release key.
Step 3: Upload to Google Play Console
- Go to Google Play Console
- Select your app (or create a new one if this is your first upload)
- Navigate to Testing > Closed testing > Manage track (or whichever track you are using)
- Click Create new release (or Edit release if one exists)
- In the “App bundles” section, click Upload and select your .aab file
- Google Play Console validates the upload — this takes 30-90 seconds
- After validation, fill in the release name (e.g., “v1.0.0 - Initial closed testing build”)
- Add release notes — these are visible to your testers. Keep them concise: “Initial beta release. Please test core features and report any issues.”
- Click Save to save the release as a draft, then Start rollout when ready
Step 4: Google Play App Signing
During your first upload, Google Play Console will prompt you to enroll in Play App Signing. This is recommended and, for most new apps, required.
How it works: You upload with your upload key. Google strips your signature and re-signs the APKs that go to users with a Google-managed key. This means:
- If you lose your upload keystore, Google can verify your identity and issue a new upload key (your app’s signing key is safe with Google)
- Google Play generates optimized APKs for different device configurations automatically
- Users always get APKs signed with the same key, even if you reset your upload key
Opting out: You can opt out of Play App Signing only if you use advanced features like direct APK signature verification in your app. For most developers, enrolling is the right choice.
Common Upload Errors and Fixes
| Error | Cause | Fix |
|---|---|---|
| “The Android App Bundle was not signed” | Debug keystore used | Build with release keystore |
| “Version code X has already been used” | Duplicate version code | Increment versionCode in build.gradle |
| “Your app targets API level X, but must target at least 34” | Target SDK too low | Update targetSdkVersion to 34+ |
| “Uploaded .apk instead of .aab” | Wrong file type | Build as Android App Bundle, not APK |
| “Keystore password incorrect” | Wrong password | Verify passwords in signing config |
| “You must accept the latest Developer Agreement” | Agreement not accepted | Accept in Console notifications |
After Upload: What Happens Next
Once you start the rollout, Google reviews your app. For Closed Testing tracks, this review is the same as the production review — policy compliance, privacy policy, content rating, and permissions are all checked. Review typically takes a few hours but can take up to 2 days.
During review, your track shows “In review.” Once approved, it shows “Available.” The 14-day clock starts when the status is “Available.”
Updating Your App During Testing
To deploy an update during your 14-day testing period:
- Increment the version code in
build.gradle(e.g., from 1 to 2) - Build a new .aab
- Go to Testing > Closed testing > Manage track > Create new release
- Upload the new .aab
- Add release notes describing what changed
- Start rollout
Testers will see the update in the Play Store and can install it like any app update. They do not need to re-opt-in or reinstall from scratch.
Frequently Asked Questions
What is the difference between .aab and .apk?
An .aab (Android App Bundle) is a publishing format that contains all your app’s compiled code and resources, but defers APK generation to Google Play. Google Play generates optimized APKs for each device configuration (screen density, CPU architecture, language), resulting in smaller downloads for users. APK is the older format where you build and sign APKs yourself for all configurations.
Can I upload an APK instead of an AAB?
Yes, APK uploads are still supported. However, .aab is recommended because it produces smaller, optimized downloads for users. New apps should use .aab.
What happens if I lose my keystore?
If enrolled in Play App Signing, you can request an upload key reset from Google. If not enrolled and you lose your production keystore, you cannot update your app. You will need to publish a new app with a new package name.
How many AABs can I upload during Closed Testing?
Unlimited. You can deploy updates as often as you need. At least one update during the 14-day period is recommended to demonstrate feedback-driven development.
Need 12 testers for your app?
Get 12 verified testers. 14-day engagement guarantee. Complete your Closed Testing requirement with confidence.
Get 12 Testers Now