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 { BoxLink } from '~/ui/components/BoxLink'; 8import { EasSubmitIcon } from '@expo/styleguide-icons'; 9 10**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 need to switch between different configurations. 11 12## Production profile 13 14Running `eas submit` without specifying a profile name will use the `production` profile if it is already defined in **eas.json** to configure the submission. 15 16An example **eas.json** with `production` is shown below: 17 18```json eas.json 19{ 20 "cli": { 21 "version": ">= 0.34.0" 22 }, 23 "submit": { 24 "production": { 25 "android": { 26 "serviceAccountKeyPath": "../path/to/api-xxx-yyy-zzz.json", 27 "track": "internal" 28 }, 29 "ios": { 30 "appleId": "[email protected]", 31 "ascAppId": "1234567890", 32 "appleTeamId": "AB12XYZ34S" 33 } 34 } 35 } 36} 37``` 38 39## Multiple profiles 40 41The JSON object under `submit` can contain multiple submit profiles. Each profile under `submit` can have an arbitrary name as shown in the example below: 42 43{/* prettier-ignore */} 44```json eas.json 45{ 46 "cli": { 47 "version": /* @info Required EAS CLI version range. */"SEMVER_RANGE"/* @end */, 48 "requireCommit": /* @info If true, ensures that all changes are committed before a build. Defults to false. */boolean/* @end */ 49 }, 50 "build": { 51 // EAS Build configuration 52 /* @hide ... */ /* @end */ 53 } 54 "submit": { 55 /* @info any arbitrary name - used as an identifier */"SUBMIT_PROFILE_NAME_1"/* @end */: { 56 "android": { 57 /* @info Android-specific configuration */...ANDROID_OPTIONS/* @end */ 58 }, 59 "ios": { 60 /* @info iOS-specific configuration */...IOS_OPTIONS/* @end */ 61 } 62 }, 63 /* @info any arbitrary name - used as an identifier */"SUBMIT_PROFILE_NAME_2"/* @end */: { 64 "extends": "SUBMIT_PROFILE_NAME_1", 65 "android": { 66 /* @info Android-specific configuration */...ANDROID_OPTIONS/* @end */ 67 } 68 }, 69 /* @hide ... */ /* @end */ 70 } 71} 72``` 73 74You can use EAS CLI to pick up another `submit` profile by specifying it with a parameter. For example, `eas submit --platform iOS --profile submit-profile-name`. 75 76## Share configuration between `submit` profiles 77 78A `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. 79 80## Next step 81 82<BoxLink 83 title="EAS Submit schema reference" 84 description="Learn about available properties for EAS Submit to configure and override their default behavior from within your project." 85 href="/eas/json/#eas-submit" 86 Icon={EasSubmitIcon} 87/> 88