Skip to main content
Glama
eas-json.md3.7 kB
--- title: Configure EAS Submit with eas.json sidebar_title: Configure with eas.json description: Learn how to configure your project for EAS Submit with eas.json. --- **eas.json** is the configuration file for EAS CLI and services. It is generated when the [`eas build:configure` command](/build/setup/#configure-the-project) runs for the first time in your project and is located next to **package.json** at the root of your project. Even though **eas.json** is not mandatory for using EAS Submit, it makes your life easier if you need to switch between different configurations. ## Production profile Running `eas submit` without specifying a profile name will use the `production` profile if it is already defined in **eas.json** to configure the submission. If no values exist in the `production` profile, EAS CLI will prompt you to provide the values interactively. The `production` profile shown below is required to run Android and iOS submissions in a CI/CD process, like with [EAS Workflows](/eas/workflows/get-started/): ```json eas.json { "cli": { "version": ">= 0.34.0" }, "submit": { "production": { "android": { "serviceAccountKeyPath": "../path/to/api-xxx-yyy-zzz.json", "track": "internal" }, "ios": { "ascAppId": "your-app-store-connect-app-id" } } } } ``` Learn more about the values you can set with the [Android specific options](/eas/json/#android-specific-options) and the [iOS specific options](/eas/json/#ios-specific-options). You can also learn how to submit to the [Apple App Store](/submit/ios) and the [Google Play Store](/submit/android). ## Multiple profiles The JSON object under `submit` can contain multiple submit profiles. Each profile under `submit` can have an arbitrary name as shown in the example below: {/* prettier-ignore */} ```json eas.json { "cli": { "version": /* @info Required EAS CLI version range. */"SEMVER_RANGE"/* @end */, "requireCommit": /* @info If true, ensures that all changes are committed before a build. Defaults to false. */boolean/* @end */ }, "build": { // EAS Build configuration /* @hide ... */ /* @end */ }, "submit": { /* @info any arbitrary name - used as an identifier */"SUBMIT_PROFILE_NAME_1"/* @end */: { "android": { /* @info Android-specific configuration */...ANDROID_OPTIONS/* @end */ }, "ios": { /* @info iOS-specific configuration */...IOS_OPTIONS/* @end */ } }, /* @info any arbitrary name - used as an identifier */"SUBMIT_PROFILE_NAME_2"/* @end */: { "extends": "SUBMIT_PROFILE_NAME_1", "android": { /* @info Android-specific configuration */...ANDROID_OPTIONS/* @end */ } }, /* @hide ... */ /* @end */ } } ``` When you select a build for submission, it chooses the profile that is used for the selected build. If the profile does not exist, it selects the default `production` profile. You can also use EAS CLI to pick up another `submit` profile by specifying it with a parameter, for example: <Terminal cmd={[ '# Replace the <profile-name> with a submit profile from the eas.json', '$ eas submit --platform ios --profile <profile-name>', ]} cmdCopy="eas submit --platform ios --profile" /> ## Share configuration between `submit` profiles A `submit` profile can extend another profile using the `extends` key. For example, in the `preview` profile you may have `"extends": "production"`. This makes the `preview` profile inherit the configuration of the `production` profile. You can keep chaining profile extensions up to the depth of 5 as long as you avoid making circular dependencies. ## Next step

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jaksm/expo-docs-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server