This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.
Submit to the Google Play Store with EAS Submit
Edit page
Learn how to submit your Android app to the Google Play Store with EAS Submit.
EAS Submit is the recommended way to upload your Android app to the Google Play Store. The eas submit command works the same way on your machine and inside CI/CD. EAS Workflows is the simplest way to run it automatically after a build.
Prerequisites
5 requirements
5 requirements
1.
A Google Play Developer account is required to submit your app to the Google Play Store. Sign up on the Google Play Console sign-up page.
2.
Create an app by clicking Create app in the Google Play Console.
3.
EAS requires a Google Service Account key to submit on your behalf. Follow the Creating a Google Service Account key guide to create one. Then, upload the key to your project's credentials with the EAS dashboard or EAS CLI:
- Go to your project's EAS dashboard, click Credentials, and under Android, click your app's Application identifier.
- Under Service Credentials, click Add a Google Service Account Key.
- Ensure Upload new key is selected and upload the downloaded JSON key.
- Run
eas credentials --platform android - When prompted Which build profile do you want to configure?, select production
- When prompted What do you want to do?, select Google Service Account > Upload a Google Service Account Key
- Enter the path to the JSON key file
4.
Include your app's package name in app.json:
{ "android": { "package": "com.yourcompany.yourapp" } }
5.
Install EAS CLI and log in with your Expo account:
- npm install --global eas-cli && eas loginBuild a production app
You need a production .aab (Android App Bundle) to submit. Google Play requires new apps to be published as app bundles instead of .apk files, and generates optimized APKs for each device from the bundle. Create one with EAS Build:
- eas build --platform android --profile productionAlternatively, build on your own computer with eas build --platform android --profile production --local or with Android Studio.
The default production profile produces a .aab. A build profile only produces a .apk when it sets android.buildType to apk, which is useful for installing on an emulator or device but cannot be submitted to the Google Play Store.
First-time submission
If this is your app's first submission, the default eas submit command works out of the box and creates your app's first release on the internal testing track. Before running it, complete the prerequisites so that your app exists on Google Play Console and EAS has a Google Service Account key to submit on your behalf. The app stays in draft status in Play Console until you complete the store listing and setup tasks, which are required before a release can be promoted to production.
- Prefer doing the first upload yourself? Follow the manual submission guide to create the first release in Play Console.
- Want to upload without rolling out? Set
releaseStatustodraftin the submission profile in eas.json, and complete the release in Play Console.
Submit with eas submit
Once the build is ready, submit it to the Google Play Store:
- eas submit --platform androidThe command will walk you through selecting a build and uploading it. Configure the submission process by adding a submission profile in eas.json. See the eas.json reference for every available option.
Build and submit in one step
Pass --auto-submit to eas build to hand the finished build off to EAS Submit automatically:
- eas build --platform android --auto-submitSee Automate submissions for details.
Automate with EAS Workflows
EAS Workflows runs the same eas submit command on EAS infrastructure, triggered by a git push or run manually from CLI. Workflows authenticate with Google Play using the Google Service Account key you uploaded in the prerequisites.
Create a workflow file named .eas/workflows/submit-android.yml with the following contents:
name: Submit Android on: push: branches: ['main'] jobs: build_android: name: Build Android app type: build params: platform: android profile: production submit_android: name: Submit to Google Play Store needs: [build_android] type: submit params: profile: production build_id: ${{ needs.build_android.outputs.build_id }}
This builds an Android app on every push to main and submits it to Google Play. Trigger it manually with:
- eas workflow:run submit-android.ymlSee the workflow examples guide for more patterns.
Use other CI/CD services
You can run eas submit from any CI/CD service, such as GitHub Actions, GitLab CI, and others:
- eas submit --platform android --profile productionThis requires a personal access token to authenticate with your Expo account. Set the EXPO_TOKEN environment variable in your CI service so eas submit can run non-interactively.