Learn how to configure your project for EAS Submit with eas.json.
eas.json is your go-to place for configuring EAS Submit (and EAS Build). It is located at the root of your project next to your package.json. Even though eas.json is not mandatory for using EAS Submit, it makes your life easier if you'll need to switch between different configurations.
eas.json looks something like this:
{
"cli": {
"version": ">= 0.34.0"
},
"submit": {
"production": {
"android": {
"serviceAccountKeyPath": "../path/to/api-xxx-yyy-zzz.json",
"track": "internal"
},
"ios": {
"appleId": "john@turtle.com",
"ascAppId": "1234567890",
"appleTeamId": "AB12XYZ34S"
}
}
}
}
The JSON object under the submit
key can contain multiple submit profiles. Every submit profile can have an arbitrary name. If you run eas submit
without a profile name specified and you have the production
profile defined in eas.json, it'll be used to configure your submission. If you'd like EAS CLI to pick up another submit profile, you need to specify it with a parameter, for example: eas submit --platform ios --profile foobar
.
The schema of this file looks like this:
{
"cli": {
"version": "SEMVER_RANGE",
"requireCommit": boolean
},
"build": {
// EAS Build configuration
%%placeholder-start%%... %%placeholder-end%%
}
"submit": {
"SUBMIT_PROFILE_NAME_1": {
"android": {
...ANDROID_OPTIONS
},
"ios": {
...IOS_OPTIONS
}
},
"SUBMIT_PROFILE_NAME_2": {
"extends": "SUBMIT_PROFILE_NAME_1",
"android": {
...ANDROID_OPTIONS
}
},
%%placeholder-start%%... %%placeholder-end%%
}
}
If you're also using EAS Build, see how to use eas.json to configure your builds.
Submit profiles can extend another submit profile using the "extends"
key. For example, in the preview
profile you may have "extends": "production"
; this would make the preview
profile inherit the configuration of the production
profile.
Property | Description |
---|---|
(string) - Path to the JSON file with service account key used to authenticate with Google Play. See how to create one. | |
(enum: production, beta, alpha, internal) - The track of the application to use. | |
(enum: completed, draft, halted, inProgress) - The status of a release. Learn more. | |
(boolean) - Indicates that the changes sent with this submission will not be reviewed until they are explicitly sent for review from the Google Play Console UI. Defaults to false. | |
(string) - The application id that will be used when accessing Service Account Keys managed by Expo, it does not have any effect if you are using local credentials. In most cases this value will be autodetected, but if you have multiple product flavors, this value might be necessary. |
Property | Description |
---|---|
(string) - Your Apple ID username (you can also set the | |
(string) - App Store Connect unique application Apple ID number. When set, results in skipping the app creation step. Learn more on this. | |
(string) - Your Apple Developer Team ID. | |
(string) - An unique ID for your app that is not visible on the App Store, will be generated unless provided. | |
(string) - Primary language. Defaults to "en-US". | |
(string) - The name of your company, needed only for the first submission of any app to the App Store. | |
(string) - The name of your app as it will appear on the App Store. Defaults to | |
(string) - The path to your App Store Connect Api Key .p8 file. Learn more. | |
(string) - The Issuer ID of your App Store Connect Api Key. Learn more. | |
(string) - The Key ID of your App Store Connect Api Key. Learn more. | |
(string) - The Bundle identifier that will be used when accessing submit credentials managed by Expo, it does not have any effect if you are using local credentials. In most cases this value will be autodetected, but if you have multiple Xcode schemes and targets, this value might be necessary. | |
(string) - The path to your store configuration file. Learn more. |