Submit to app stores
Edit this page
Learn how to submit your app to Google Play Store and Apple App Store from the command line with EAS Submit.
EAS Submit is a hosted service that allows uploading and submitting app binaries to the app stores using EAS CLI. This guide describes how to submit your app to the Google Play Store and Apple App Store using EAS Submit.

EAS Submit makes it easy to publish your apps to the App Store and Play Store with a simple command.
Google Play Store
Prerequisites
1
A paid developer account is required — You can create a Google Play Developer account on the Google Play Console sign-up page.
2
Create a Google Service Account and download its JSON private key.
3
Create an app on Google Play Console and upload your app manually at least once.
4
Native app binary signed for Google Play Store submission using EAS Build. If you haven't followed the previous guide, see Build your project for app stores for more information.
Although it's possible to upload any binary to the store, each submission is associated with an Expo project. That's why it's important to start a submission from inside your project's directory because app config is defined inside that directory.
Submit binary to Google Play Store
To submit the app binary to Google Play Store, run the following command from inside your project's directory:
-
eas submit -p android
The command will lead you through the process of submitting the app. It will perform the following steps:
-
Log in to your Expo account and ensure that your app project exists on EAS servers.
-
Prompt for the Android package name unless
android.package
is set in the app config. -
Ask for which binary to submit. You can select one of the following:
-
The latest finished Android build for the project on EAS servers.
-
Specific build ID. It can be found on the builds dashboard.
-
Path to an .apk or .aab archive on your local filesystem.
-
URL to the app archive.
This step can be skipped if one of the following CLI parameters is provided:
--latest
,--id
,--path
, or--url
. -
-
Unless
serviceAccountKeyPath
is provided in eas.json, you will be prompted for the path to your Google Services JSON key. -
The summary of provided configuration is displayed and the submission process begins. The submission progress is displayed on the screen.
-
Your build should now be visible on Google Play Console. If something goes wrong, an appropriate message is displayed on the screen.
Apple App Store
Build and submit production apps directly to the Apple App Store with a single command:
-
eas build -p ios --submit
Prerequisites
1
Enroll in the Apple Developer Program. This process can take about 24 hours and requires an annual fee of $99 USD.
2
Have a native app binary signed for Apple App Store distribution. See Build your project for app stores for more information.
Submit binary to Apple App Store
To submit the iOS app to the App Store, run the following command from inside your project's directory:
-
eas submit -p ios
The command will lead you through the process of submitting the app. It will perform the following steps:
-
Log in to your Expo account and ensure that your app project exists on EAS servers.
-
Ensure that your app exists on App Store Connect and its Bundle Identifier is registered on Apple Developer Portal:
-
You will be asked to log in to your Apple Developer account and select your team. You can also provide this information in eas.json by setting
appleId
andappleTeamId
in the submit profile. The Apple ID password has to be set with theEXPO_APPLE_PASSWORD
environment variable. -
The command will look for
ios.bundleIdentifier
in the app config. -
If you are submitting your app for the first time, it will be automatically created. Unless
expo.name
in your app configuration is found orappName
is provided in eas.json, you will be prompted for the app name. You can also specify your app's language and SKU usinglanguage
andsku
keys in eas.json. If you have never submitted any app before, you may also have to specify your company name withcompanyName
. -
Create an internal TestFlight group with all account admins added. This enables instant access to the latest builds.
If you already have an App Store Connect app, this step can be skipped by providing the
ascAppId
in the submit profile. The ASC App ID can be found either on App Store Connect, or later during this command in the Submission Summary table. -
-
Ensure you have the proper credentials set up. If none can be found, you can let EAS CLI set some up for you.
Do you want to use your own credentials?
App Store Connect API Key: Create your own API Key then set it with the
ascApiKeyPath
,ascApiKeyIssuerId
, andascApiKeyId
fields in eas.json.App Specific Password: Provide your password and Apple ID Username by passing them in with the
EXPO_APPLE_APP_SPECIFIC_PASSWORD
environment variable andappleId
field in eas.json, respectively. -
Ask for which binary to submit. You can select one of the following:
-
The latest successful iOS build for the project on EAS servers.
-
Specific build ID. It can be found on the builds dashboard.
-
Path to an .ipa archive on your local filesystem.
-
URL to the app archive.
This step can be skipped if one of the following CLI parameters is provided:
--latest
,--id
,--path
, or--url
. -
-
A summary of the provided configuration is displayed and the submission process begins. The submission progress is displayed on the screen.
-
Your build should now be visible on App Store Connect. If something goes wrong, an appropriate message is displayed on the screen.
Manual submission to app stores
To learn more about manual app submission process to Google Play Store and Apple App Store, see the following:
Follow the steps from the FYI guide on manually submitting your app to Google Play Store for the first time.
Learn how to submit your app manually to Apple App Store or TestFlight using App Store Connect.
Next step
Learn how to pre-configure your project using eas.json file with EAS Submit and more about Android or iOS specific options.