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

  1. Open your project in Android Studio
  2. Select Build > Generate Signed Bundle / APK
  3. Choose Android App Bundle and click Next
  4. 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.
  5. Select release build variant
  6. Check V1 (Jar Signature) and V2 (Full APK Signature) — both should be enabled
  7. 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

  1. Go to Google Play Console
  2. Select your app (or create a new one if this is your first upload)
  3. Navigate to Testing > Closed testing > Manage track (or whichever track you are using)
  4. Click Create new release (or Edit release if one exists)
  5. In the “App bundles” section, click Upload and select your .aab file
  6. Google Play Console validates the upload — this takes 30-90 seconds
  7. After validation, fill in the release name (e.g., “v1.0.0 - Initial closed testing build”)
  8. Add release notes — these are visible to your testers. Keep them concise: “Initial beta release. Please test core features and report any issues.”
  9. 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:

  1. Increment the version code in build.gradle (e.g., from 1 to 2)
  2. Build a new .aab
  3. Go to Testing > Closed testing > Manage track > Create new release
  4. Upload the new .aab
  5. Add release notes describing what changed
  6. 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
Get Your App Approved on Google PlayMoney-back guaranteeStarts in 24 hoursStarting at $14.99