- Google Play Console account ($25 one-time fee)
- Expo account with EAS configured (see EXPO_SETUP.md)
- Go to play.google.com/console/signup
- Pay the $25 registration fee
- Complete identity verification
- Go to play.google.com/console
- Click Create app
- Fill in app details (name, language, app/game, free/paid)
- Accept the declarations
- Click Create app
This key allows EAS to upload builds to the Play Store automatically.
- Go to console.cloud.google.com
- Create a new project (or use existing)
- Go to APIs & Services → Library
- Search for Google Play Android Developer API
- Click Enable
- Go to APIs & Services → Credentials
- Click Create Credentials → Service Account
- Name it something like
eas-submit - Click Create and Continue
- Skip the optional steps → Done
- Click on the service account you just created
- Go to Keys tab
- Click Add Key → Create new key → JSON
- Download the JSON file
- Save it as
play-store-key.jsonin your project root
Important: This file is gitignored. Never commit it to version control.
- Go to play.google.com/console
- Click Users and permissions → Invite new users
- Enter the service account email (from the JSON file:
client_email) - Under App permissions, add your app
- Grant these permissions:
- Release to production, exclude devices, and use Play App Signing
- Release apps to testing tracks
- Manage testing tracks and edit tester lists
- Click Invite user → Send invite
The template ships without a submit block so you don't have to hand-edit placeholders. Run:
eas submit:configureEAS will prompt you and write the values into eas.json under submit.production.android:
serviceAccountKeyPath: path to the JSON you saved (e.g../play-store-key.json)track:internal,alpha,beta, orproduction
See Expo docs: Android submission for details.
Google Play requires the first AAB to be uploaded manually:
- Build your first production AAB:
eas build --platform android --profile production
- Download the AAB from expo.dev → your project → builds
- Go to Google Play Console → your app → Production (or Internal testing)
- Click Create new release → upload the AAB → Save → Review release → Start rollout
After the first manual upload, the CD workflow will handle all future deployments.
Ensure android.package in app.json matches what you registered in Google Play Console.
Double-check that the service account email has been invited in Google Play Console with the correct permissions. It can take a few hours for permissions to propagate.