PEERPLAY MENU
Download PeerPlay
Home / Blog / FlutterFlow to Play Store: Getting Through Closed Testing

FlutterFlow to Play Store: Getting Through Closed Testing

Short answer

To publish a FlutterFlow app on the Play Store from a new personal account, deploy to internal testing as FlutterFlow's docs describe, then promote that release to a closed testing track in Play Console. At least 12 testers must stay opted in for 14 days in a row before you can apply for production.

To get a FlutterFlow app onto the Play Store from a new personal developer account, deploy it to internal testing as FlutterFlow's docs describe, then promote that release to a closed testing track in Play Console and keep at least 12 testers opted in for 14 days in a row. Only after that can you apply for production.

FlutterFlow's deployment guide goes from internal testing straight to Promote Release and Production. It never mentions the closed test, so many FlutterFlow users only discover the requirement when Play Console won't let them release. Here's the full path with that missing step added.

Step 1: set up FlutterFlow Play Store deployment

Create the app in Play Console first, and double-check the package name in FlutterFlow. The docs warn that it can't be changed after your app is deployed. Your launcher icon also must not have transparency.

Then give FlutterFlow permission to upload for you. In Google Cloud Console, enable the Google Play Developer API, create a service account and download a JSON key for it. In Play Console, invite that service account under Users and permissions with rights to release to testing tracks and production. Finally, in FlutterFlow open Settings & Integrations, App Settings, Mobile Deployment, and upload the file under Service Account Credentials in the Google Play Store section.

Step 2: upload the first AAB by hand

FlutterFlow can't make the very first upload for you. Its docs say that for a fresh deployment you download the .aab from FlutterFlow and upload it to the internal testing track yourself. Set Google Play Track to Internal, start the deploy, wait for the build, and download the AAB from the build status.

In Play Console, open Internal testing, create a release and upload that file. Once the internal track has a build, FlutterFlow handles later releases with one click.

FlutterFlow generates the keystore and signs the app for you. Download a copy of that keystore from the deployment settings and keep it somewhere safe. If you previously published the app with your own keystore, enable the Upload Keystore option under Advanced Settings and provide the file and its alias, or Play Console will reject the bundle as signed with the wrong key.

Step 3: move the release to closed testing

This is the step the FlutterFlow docs skip. Google requires personal developer accounts created after November 13, 2023 to run a closed test with at least 12 testers opted in for the last 14 days continuously before applying for production access. Internal testing doesn't count toward it, and organization accounts are exempt.

In Play Console, go to Testing, then Closed testing, and create a track or use the default one. Then promote your internal release to it: open the internal release, choose Promote release and pick the closed track. You're reusing the same build FlutterFlow already uploaded, so nothing changes in your project.

Add testers to the closed track with an email list or a Google Group and send them the opt-in link. Invite 15 to 20 people. The 14 days only count while 12 or more are opted in, and a few will always drop out.

Step 4: ship updates during the 14 days

When testers find a bug, fix it in FlutterFlow and deploy again. FlutterFlow raises the build number, which is the Android version code, on every deploy, so you won't hit a duplicate version error.

The documented flow sends each new build to the internal track. After it arrives, promote it to your closed track the same way as before so your testers get the update. Keep the same closed track and tester list for the whole test.

Fixing common FlutterFlow deploy errors

"Only releases with the status draft may be created on a draft app." Your Play Console app hasn't finished setup yet. FlutterFlow's docs say to enable Submit as draft under Advanced Settings, then roll out the release manually in Play Console.

"Changes cannot be sent for review automatically." Enable the Changes not sent for review option in FlutterFlow and deploy again, then send the changes for review yourself in Play Console.

A wrong signing key error means the bundle was signed with a different key than Play Console expects. Check whether the app was first uploaded with another keystore, and if so use the Upload Keystore setting described above.

Step 5: apply for production

After 14 days with 12 or more testers opted in, apply for production access from the Play Console Dashboard. Google asks how you tested and what you changed, so keep notes on tester feedback. Once access is granted, promote the release to Production and switch Google Play Track to Production in FlutterFlow.

If you can't find 12 people who will stay for two weeks, PeerPlay is a free way to swap tests with other Android developers, and paid VIP packages are available if you'd rather skip the swaps.

FAQ

Does FlutterFlow's internal testing track count toward the 12 testers?

No. Google's requirement is a closed test with at least 12 testers opted in for 14 days in a row. Promote your internal release to a closed testing track in Play Console.

Why do I have to upload the first AAB manually?

FlutterFlow's docs say the first build of a fresh deployment must be downloaded and uploaded to the internal testing track by hand. After that, FlutterFlow can deploy later releases for you.

Do I need to change the build number myself?

No. FlutterFlow says it auto-increments the build number, which is the Android version code, on every deploy. You can still edit the version and build number if you need to.

Where is my FlutterFlow keystore?

FlutterFlow generates it automatically and lets you download it from the Google Play deployment settings. Keep a backup.

Ready to Pass Your Closed Testing Requirement?

Join PeerPlay's peer-to-peer network and get 12 testers for 14 days - verified, and free.

Download PeerPlay

New to PeerPlay? Watch the 2-minute walkthrough.

IN A HURRY?

Skip the Tester Hunt. Start the 14 Days Today.

VIP Pro fills your closed test with verified, paid testers on real devices, and you test nothing back. Starter Pro is 15 testers for $24.99, one time, so one dropout doesn't leave you short of 12.

See VIP Packages