EAS Submit

Edit page

EAS Submit is a hosted service for submitting Android and iOS app binaries to the Google Play Store and Apple App Store from the command line.


EAS Submit is a hosted service from EAS (Expo Application Services) for submitting Android and iOS binaries directly to the Google Play Store and Apple App Store without opening the Google Play Console, or downloading the Transporter app.

EAS Submit automates the final step of mobile app distribution by sending your built binaries to Google and Apple for store review. It removes the need for manual uploads and reduces errors that happen during store submission. It also allows developers using Windows and Linux to upload iOS builds, since this is only supported on macOS machines.

EAS Submit works with apps built with EAS Build or locally and supports multiple submission profiles. You can trigger a submission from a CLI command, after a build is finished, or from a CI/CD service. This gives teams a faster, more consistent release workflow across both platforms.

Quick start

Submit an Android build:

Terminal
eas submit --platform android

Submit an iOS build:

Terminal
eas submit --platform ios

Build and submit in one step:

Terminal
eas build --platform ios --auto-submit

How EAS Submit works

EAS Submit delivers your app to the app stores' distribution pipelines (a chosen track on Google Play Store or TestFlight for iOS), following the default submission behavior for app stores. It queues up your app for distribution on the Google Play Console and App Store Connect, and then you can log into those sites to send your apps off to review, so then they can be distributed to your users.

Android (Google Play Store)

  • Where it goes: EAS Submit uploads the build to Google Play Console.
  • What happens then: The build is placed in the track you specify (internal, alpha, beta, or production).
  • First-time submissions: Google requires you to upload your app manually at least once before API-based submissions work.
  • Does this mean production?
    • If you use internal, alpha, or beta, the app is only available to testers in that track.
    • If you explicitly choose production, then yes — once Google approves the release, it will be available to all users.

iOS (App Store Connect/TestFlight)

  • Where it goes: EAS Submit uploads the build to App Store Connect.
  • What happens then: The build becomes available in TestFlight.
  • Does this mean production? No — a TestFlight build is not automatically released to the Apple App Store.
  • How production happens: You must log into App Store Connect, fill in all the metadata, security questionnaire and upload app screenshots, then choose the build, and submit it for App Review before it can be released to production.

When to use EAS Submit

ScenarioRecommendation
Upload app binaries to Google Play Console and Apple App Store
Upload iOS app binaries on non-macOS machines
Avoid manual uploads through Play Console, App Store Connect or Transporter
Submit builds from CI or automated workflows
Standardize release processes via eas.json config file
Reduce human errors during submission
Testing locally and not ready for a store submission
Do not have a store listing configured yet for Google Play Store

Frequently asked questions (FAQ)

Can I submit builds that were not built with EAS Build?

Yes. EAS Submit accepts any valid .aab (Android App Bundle) or .ipa (iOS App Archive) file.

For builds created with EAS Build, run eas submit and select a build from the list or let it use the latest build automatically.

For local builds, use the --path flag to specify the binary:

Terminal
eas submit --platform android --path ./my-app.aab

eas submit --platform ios --path ./my-app.ipa

The binary must be correctly signed. For Android, this means a release keystore. For iOS, this means a distribution certificate and provisioning profile.

Can I use EAS Submit for TestFlight?

Yes. All iOS submissions through EAS Submit are uploaded to App Store Connect and appear in TestFlight after processing. Processing typically takes 10-15 minutes but can vary.

Once processed, you can distribute the build to internal testers immediately or add external testers after a brief Beta App Review. To release to the App Store, you must manually submit the build for App Review through App Store Connect.

Can I use EAS Submit inside EAS Workflows or from other CI/CD pipelines?

Yes. EAS Submit works in CI environments and integrates with EAS Workflows. You can add a submit job to your workflow configuration. For example:

jobs: submit_ios_to_store: type: submit params: platform: ios after: - build_ios

For more information, see EAS Workflows pre-packaged jobs.

For CI pipelines, you can also use the --non-interactive flag to skip prompts and --latest to automatically select the most recent build:

Terminal
eas submit --platform android --latest --non-interactive
Do I need to handle metadata or screenshots?

EAS Submit uploads your binary but does not manage store listing metadata, screenshots, or release notes.

For Google Play Store, configure your store listing directly in Google Play Console before submitting.

For Apple App Store, you can use EAS Metadata to automate app information and localized descriptions.

What credentials do I need?

For Android, you need a Google Service Account Key with access to your app in Google Play Console. Your app must be uploaded manually at least once before API submissions work.

For iOS, you need an Apple Developer account. EAS Submit requires your ascAppId (App Store Connect app ID) and will prompt for your Apple ID credentials or use an App Store Connect API Key if configured.

For more information, see Google's Play Store's prerequisites and Apple's App Store prerequisites.

How do I know why my submission failed?

To understand why your EAS Submit submission failed, open the submission details page in the EAS dashboard:

  • Use the logs provided on the submission details page to understand the error.
  • Look for "Build Annotations" bubble if there is one. These highlight common failure reasons and suggested fixes directly in the logs.

Get started

Submit to the Google Play Store

Learn how to submit an Android app to the Google Play Store.

Submit to the Apple App Store

Learn how to submit an iOS/iPadOS app to the Apple App Store.

Configuration with eas.json

See how to configure your submissions with eas.json.