A reference of configuration options for EAS Build and Submit.
eas.json is your go-to place for configuring EAS Build (and EAS Submit). It is located at the root of your project next to your package.json.
This document is a reference that outlines the schema for the "build"
key in eas.json. For an explanation of how to use it, see Configuring EAS Build eas.json.
{
"build": {
"base": {
"node": "12.13.0",
"yarn": "1.22.5",
"env": {
"EXAMPLE_ENV": "example value"
},
"android": {
"image": "default",
"env": {
"PLATFORM": "android"
}
},
"ios": {
"image": "latest",
"env": {
"PLATFORM": "ios"
}
}
},
"development": {
"extends": "base",
"developmentClient": true,
"env": {
"ENVIRONMENT": "development"
},
"android": {
"distribution": "internal",
"withoutCredentials": true
},
"ios": {
"simulator": true
}
},
"staging": {
"extends": "base",
"env": {
"ENVIRONMENT": "staging"
},
"distribution": "internal",
"android": {
"buildType": "apk"
}
},
"production": {
"extends": "base",
"env": {
"ENVIRONMENT": "production"
}
}
}
}
{
"build": {
"base": {
"env": {
"EXAMPLE_ENV": "example value"
},
"android": {
"image": "ubuntu-18.04-android-30-ndk-r19c",
"ndk": "21.4.7075529"
},
"ios": {
"image": "latest",
"node": "12.13.0",
"yarn": "1.22.5"
}
},
"development": {
"extends": "base",
"env": {
"ENVIRONMENT": "staging"
},
"android": {
"distribution": "internal",
"withoutCredentials": true,
"gradleCommand": ":app:assembleDebug"
},
"ios": {
"simulator": true,
"buildConfiguration": "Debug"
}
},
"staging": {
"extends": "base",
"env": {
"ENVIRONMENT": "staging"
},
"distribution": "internal",
"android": {
"gradleCommand": ":app:assembleRelease"
}
},
"production": {
"extends": "base",
"env": {
"ENVIRONMENT": "production"
}
}
}
}
{
"cli": {
"version": "SEMVER_RANGE",
"requireCommit": boolean,
"appVersionSource": string,
"promptToConfigurePushNotifications": boolean,
},
"build": {
"BUILD_PROFILE_NAME_1": {
...COMMON_OPTIONS,
"android": {
...COMMON_OPTIONS,
...ANDROID_OPTIONS
},
"ios": {
...COMMON_OPTIONS,
...IOS_OPTIONS
}
},
"BUILD_PROFILE_NAME_2": {},
...
}
}
You can specify common options both in the platform-specific configuration object or at the profile's root. The platform-specific options take precedence over globally-defined ones.
EAS Submit is also configured in eas.json. You can find the reference for the
"submit"
fields in Configuring EAS Submit with eas.json.
Property | Description |
---|---|
(string) - The name of the build profile that the current one should inherit values from. This value can't be specified per platform. | |
(enum: local, remote) - The source of credentials used to sign the application archive.
| |
(string) - Name of the release channel for the | |
(string) - The channel is a name we can give to multiple builds to identify them easily. Learn more. This field only applies to the EAS Update service, if your project still uses Classic Updates then use the releaseChannel field instead. | |
(enum: store, internal) - The method of distributing your app.
| |
(boolean) - If set to true (defaults to false), this field expresses the intent to produce a development client build.
For the build to be successful, the project must have expo-dev-client installed and configured.
Note: this field is sugar for setting the iOS | |
(enum: default, medium) - The resource class that will be used to run this build.
To see mapping for | |
(string) - Optional override of the prebuild command used by EAS.
For example, you can specify | |
(string[]) - List of paths (or patterns) where EAS Build is going to look for the build artifacts. Use | |
(string) - Version of Node.js. | |
(string) - Version of Yarn. | |
(string) - Deprecated: Version of expo-cli used to prebuild your app. It only affects managed projects on Expo SDK 45 and lower. For newer SDKs, EAS Build will use the versioned Expo CLI. It comes with the | |
(object) - Environment variables that should be set during the build process (should only be used for values that you would commit to your git repository, i.e. not passwords or secrets). | |
(boolean) - Controls how EAS CLI bumps your application build version. Defaults to When enabled, for iOS, bumps the last component of | |
(object) - Cache configuration. This feature is intended for caching values that require a lot of computation, e.g. compilation results (both final binaries and any intermediate files), but it wouldn't work well for | |
(boolean) - Disables caching. Defaults to false. | |
(string) - Cache key. You can invalidate the cache by changing this value. | |
(array) - List of the paths that will be saved after a successful build and restored at the beginning of the next one. Both absolute and relative paths are supported, where relative paths are resolved from the directory with | |
(boolean) - Specifies whether to cache the recommended set of files, currently only Podfile.lock is cached by default for iOS build and nothing is cached for Android. Defaults to true. |
Property | Description |
---|---|
(boolean) - When set to | |
(string) - Image with build environment. Learn more about it here. | |
(enum: default, medium, large) - The Android-specific resource class that will be used to run this build. Learn more
This can change over time. To ensure you stay on the same configuration even when we change our defaults, use the specific resource class name. | |
(string) - Version of Android NDK. | |
(boolean | "version" | "versionCode") - Controls how EAS CLI bumps your application build version. Defaults to Allowed values:
Based on the value of "cli.appVersionSource" option in eas.json, the values will be updated locally in your project or on EAS servers. Learn more | |
(enum: app-bundle, apk) - Type of the artifact you want to build. It controls what Gradle task will be used, can be overridden by
| |
(string) - Gradle task that will be used to build your project, e.g. | |
(string) - Path (or pattern) where EAS Build is going to look for the application archive. EAS Build uses the |
Property | Description |
---|---|
(boolean) - If set to true, creates build for simulator. Defaults to false | |
(enum: universal, adhoc) - Provisioning method used for | |
(boolean | "version" | "buildNumber") - Controls how EAS CLI bumps your application build version. Defaults to Allowed values:
Based on the value of "cli.appVersionSource" option in eas.json, the values will be updated locally in your project or on EAS servers. Learn more | |
(string) - Image with build environment. Learn more about it here. | |
(enum: default, medium, m-medium, intel-medium) - The iOS-specific resource class that will be used to run this build. Learn more
This can change over time. To ensure you stay on the same configuration even when we change our defaults, use the specific resource class name. | |
(string) - Version of bundler. | |
(string) - Version of fastlane. | |
(string) - Version of CocoaPods. | |
(string) - Xcode project's scheme.
| |
(string) - Xcode project's Build Configuration.
It takes priority over | |
(string) - Path (or pattern) where EAS Build is going to look for the application archive. EAS Build uses the |