Learn about the current build server infrastructure when using EAS.
This document describes the current build infrastructure as of June 27, 2022. It is likely to change over time, and this document will be updated.
Here is the up-to-date list of worker IP addresses.
Images for each platform have one specific version of Node.js, yarn, CocoaPods, Xcode, Ruby, Fastlane, and so on. You can override some of the versions in eas.json.
If there is no dedicated configuration option you're looking for, you can use npm hooks to install or update any system dependencies with apt-get
or brew
. Please take into account that those customizations are applied during the build and will increase your build times.
When selecting an image for the build you can use the full name provided below or one of the aliases: default
, latest
.
default
alias will be assigned to the environment that most closely resembles the configuration used for Expo SDK development.latest
alias will be assigned to the image with the most up to date versions of the software.Note: If you do not provideimage
in eas.json, your build will usedefault
image. However, in some cases, we select a more appropriate image based on the Expo SDK version or React Native version. You can check what image is used for a build in the "Spin up build environment" build logs section.
Android workers run on virtual machines in an isolated environment. Every build gets its own dedicated VM instance.
Build resources:
medium
: 4 CPU, 16 GB RAM (n2-standard-4
Google Cloud machine type)large
: 8 CPU, 32 GB RAM (n2-standard-8
Google Cloud machine type)Global Gradle configuration in ~/.gradle/gradle.properties:
org.gradle.jvmargs=-Xmx14g -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.parallel=true
org.gradle.configureondemand=true
org.gradle.daemon=false
Global npm configuration in ~/.npmrc:
registry=http://npm-cache-service.worker-infra-production.svc.cluster.local:4873
Global Yarn configuration in ~/.yarnrc.yml:
unsafeHttpWhitelist:
- '*'
npmRegistryServer: 'http://npm-cache-service.worker-infra-production.svc.cluster.local:4873'
enableImmutableInstalls: false
ubuntu-22.04-jdk-11-ndk-r21e
(alias latest
)ubuntu:jammy-20220531
ubuntu-22.04-jdk-8-ndk-r21e
ubuntu:jammy-20220531
ubuntu-20.04-jdk-11-ndk-r21e
(alias default
)ubuntu:focal-20210921
ubuntu-20.04-jdk-8-ndk-r21e
ubuntu:focal-20210921
ubuntu-18.04-jdk-11-ndk-r19c
ubuntu:bionic-20210930
ubuntu-18.04-jdk-8-ndk-r19c
ubuntu:bionic-20210930
iOS worker VMs run on Mac Mini 8.1 hosts in an isolated environment. Every build gets its own fresh macOS VM:
Hardware:
Build resources:
intel-medium
: 3 cores, 12 GB RAM, 2 builder VMs per hostm-medium
: 2 cores, 8 GB RAM, 2 builder VMs per hostGlobal npm configuration in ~/.npmrc:
registry=http://10.254.24.9:4873
Global Yarn configuration in ~/.yarnrc.yml:
unsafeHttpWhitelist:
- '*'
npmRegistryServer: 'registry=http://10.254.24.9:4873'
enableImmutableInstalls: false
macos-monterey-12.6-xcode-14.2
(alias latest
)macos-monterey-12.6-xcode-14.1
(alias default
)macos-monterey-12.6-xcode-14.0
macos-monterey-12.4-xcode-13.4
macos-big-sur-11.4-xcode-13.0
macos-monterey-12.3-xcode-13.3
(deprecated)macos-monterey-12.1-xcode-13.2
(deprecated)macos-big-sur-11.4-xcode-12.5
(deprecated, not available for M1 workers)