If you built your app with Flutter and you're trying to publish it on Google Play, you've hit the same wall as everyone else: the 12-tester, 14-day closed testing requirement. The Flutter-specific part is setting up your testing track with the right build — this guide covers both the Flutter build process and the closed testing setup.

Flutter Build Setup for Google Play

Google Play requires an Android App Bundle (AAB) for production submissions. Here's the Flutter build command:

flutter build appbundle --release

Output is at: build/app/outputs/bundle/release/app-release.aab

Before building, make sure:

Setting Up Your Signing Key

Generate a keystore if you haven't already:

keytool -genkey -v -keystore release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias release

Create android/key.properties:

storePassword=your_password
keyPassword=your_password
keyAlias=release
storeFile=../../release-key.jks

Add this to your android/app/build.gradle before the android block:

def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) { keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) }

Upload to Closed Testing Track

  1. In Google Play Console: Testing → Closed Testing → Alpha track (or create a new track)
  2. Click Create new release
  3. Upload your app-release.aab
  4. Add release notes (even brief ones: "Initial closed test build")
  5. Save and review, then Roll out to Alpha
  6. Wait for Google Play review (typically a few hours for testing tracks)

Getting the Opt-In URL for Your Flutter App

Once the track is published:

  1. Go to Testing → Closed Testing → your track → Testers tab
  2. Find the "How testers join" section
  3. Copy the opt-in URL

This URL is what your testers click to join. You can also add a Google Group to manage testers at scale.

Common Flutter + Play Console Issues

APK upload rejected — wrong format

Google Play requires AAB format for new apps, not APK. Use flutter build appbundle, not flutter build apk.

Version code conflict

Each new upload to any track must have a higher version code. In pubspec.yaml: version: 1.0.0+2 — the number after + is the version code. Increment it with every new build.

App crashes on some devices

Use Firebase Crashlytics to monitor crashes during your testing period. Add it to your Flutter app with firebase_crashlytics: ^4.0.0 and the FlutterFire CLI setup. This also gives you real crash data to reference in your production access form.

Getting Your 12 Testers

The Flutter-specific testing challenge is the same as for all Android apps: finding 12 committed testers. The Flutter developer community is large and active — communities like r/FlutterDev and Discord servers have tester-swap channels. However, the dropout and reliability issues are the same as any other tester-swap community.

{CTA}

Flutter Production Access Timeline

With TestLaunch Pro's Compliance Guarantee package, your Flutter app can be production-ready in approximately: