1--- 2title: Configure EAS Submit with eas.json 3sidebar_title: Configure with eas.json 4description: Learn how to configure your project for EAS Submit with eas.json. 5--- 6 7import { EasJsonPropertiesTable } from '~/components/plugins/EasJsonPropertiesTable'; 8 9import submitAndroidSchema from '~/public/static/schemas/unversioned/eas-json-submit-android-schema.js'; 10import submitIosSchema from '~/public/static/schemas/unversioned/eas-json-submit-ios-schema.js'; 11 12**eas.json** is your go-to place for configuring EAS Submit (and [EAS Build](/build/eas-json)). 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. 13 14**eas.json** looks something like this: 15 16```json eas.json 17{ 18 "cli": { 19 "version": ">= 0.34.0" 20 }, 21 "submit": { 22 "production": { 23 "android": { 24 "serviceAccountKeyPath": "../path/to/api-xxx-yyy-zzz.json", 25 "track": "internal" 26 }, 27 "ios": { 28 "appleId": "[email protected]", 29 "ascAppId": "1234567890", 30 "appleTeamId": "AB12XYZ34S" 31 } 32 } 33 } 34} 35``` 36 37The 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`. 38 39The schema of this file looks like this: 40 41{/* prettier-ignore */} 42```json eas.json 43{ 44 "cli": { 45 "version": /* @info Required EAS CLI version range. */"SEMVER_RANGE"/* @end */, 46 "requireCommit": /* @info If true, ensures that all changes are committed before a build. Defults to false. */boolean/* @end */ 47 }, 48 "build": { 49 // EAS Build configuration 50 /* @hide ... */ /* @end */ 51 } 52 "submit": { 53 /* @info any arbitrary name - used as an identifier */"SUBMIT_PROFILE_NAME_1"/* @end */: { 54 "android": { 55 /* @info Android-specific configuration */...ANDROID_OPTIONS/* @end */ 56 }, 57 "ios": { 58 /* @info iOS-specific configuration */...IOS_OPTIONS/* @end */ 59 } 60 }, 61 /* @info any arbitrary name - used as an identifier */"SUBMIT_PROFILE_NAME_2"/* @end */: { 62 "extends": "SUBMIT_PROFILE_NAME_1", 63 "android": { 64 /* @info Android-specific configuration */...ANDROID_OPTIONS/* @end */ 65 } 66 }, 67 /* @hide ... */ /* @end */ 68 } 69} 70``` 71 72If you're also using EAS Build, [see how to use **eas.json** to configure your builds](/build/eas-json). 73 74### Sharing configuration between profiles 75 76Submit 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. 77 78## Android-specific options 79 80<EasJsonPropertiesTable schema={submitAndroidSchema} /> 81 82## iOS-specific options 83 84<EasJsonPropertiesTable schema={submitIosSchema} /> 85