1. Store Configuration
  2. /
  3. Google Play Console

Google Play Console

On this page

Blaze uploads your Android App Bundle to Google Play through the Google Play Developer API, using a service account you create. This page covers the Play Console and Google Cloud side. The Flutter project side is covered in Android Setup.

What Blaze Needs

  • The app in Play Console, with the same package name as your applicationId.
  • One release of the app uploaded by hand, because Google's API cannot upload to an app that has never had one.
  • A Google Cloud service account with a JSON key, invited to Play Console with permission to release the app.
  • Your upload keystore on Signing & keys (Android Setup).

Create the App

  1. In Google Play Console, click Create app.
  2. Enter the app name and default language, choose app or game and free or paid, and accept the declarations.
  3. Work through the setup tasks on the app's Dashboard (store listing, content rating, target audience, data safety). Google requires them before the app can be published.

Google Play requires Play App Signing for apps published as App Bundles, which is how Blaze publishes. The keystore you give Blaze is your upload key; Google signs the copies users download with the app signing key it holds.

Upload the First Release by Hand

Google Play does not accept API uploads for an app that has never had a bundle uploaded in Play Console. Do this once:

  1. Build a signed bundle on your machine with the same upload keystore, following Sign Release Builds: flutter build appbundle --release.
  2. In Play Console, open the app's Internal testing track, create a release and upload build/app/outputs/bundle/release/app-release.aab.

Use a low build number for this upload, for example version: 1.0.0+1 in pubspec.yaml. Blaze assigns the build number of every later build, and Play expects each new release to carry a higher version code than the ones it already has.

Create a Service Account

  1. In the Google Cloud console, select or create a project.
  2. Open APIs & Services → Library, find Google Play Android Developer API and enable it. Calls from a project where the API is disabled are refused.
  3. Open IAM & Admin → Service accounts and click Create service account. Give it a name such as blaze-uploads. It needs no Google Cloud roles.
  4. Open the new service account, go to Keys → Add key → Create new key, choose JSON and download the file.

Keep the JSON file private. Anyone who has it can publish to your app with the permissions you give it in Play Console.

Give It Access in Play Console

  1. In Play Console, open Users and permissions and click Invite new users.
  2. Enter the service account's email address. It is the client_email in the JSON file and ends in .iam.gserviceaccount.com.
  3. Under app permissions, add your app and grant permission to release it to the tracks you deploy to: the testing tracks, and production if you use the Production target.
  4. Send the invitation.

Connect It in Blaze

  1. Open the application page, then Signing & keys from the ··· menu. Only workspace owners and admins can change keys.
  2. In the Play service account card, click Upload JSON and choose the key file.

Blaze checks that the file is a service account key (it must contain client_email and private_key) and stores it encrypted. The card then shows Uploading as with the service account's email address. Google checks the key itself at the start of the next Android deployment: an Android deployment stops before compiling if Google refuses it.

Each app holds its own service account. When another app in the workspace already has one that works, this app's card offers Copy from that app, so apps in one Play developer account don't need the key uploaded twice.

Tracks and Testers

Each Android target in the deploy dialog uploads to one Play Console track. Choose Targets lists which target goes to which track; check it before you deploy, because one of the targets publishes to open testing.

Releases are full releases: Blaze does not set a staged rollout percentage, and Production releases to every user once Google approves it. If Google does not let a change be sent for review automatically, Blaze saves the release without sending it, and you send it for review from Publishing overview in Play Console.

Add testers to each testing track in Play Console, as email lists or Google Groups. Blaze's Android tester groups do not change the testers Play has for a track.

Blaze does not submit store listings, screenshots or release notes to Google Play. Manage those in Play Console.

Troubleshooting

The upload fails for a new app. Make sure a first release was uploaded by hand, and that the package name in Blaze matches the app.

The service account is refused before the build. Check that the JSON key still exists in Google Cloud, that the Google Play Android Developer API is enabled for the key's project, and that the email address was invited in Users and permissions.

Play refuses the version code. Every upload needs a version code higher than any Play already has for the app. See Version and Package Name.

Play says the bundle is signed with the wrong key. The keystore on Signing & keys is not the upload key Play has on record. Upload the right keystore. If that key is lost, Play Console lets you request an upload key reset from the app's App integrity page.

Next Steps