了解使用 EAS 时当前的构建服务器基础设施。
¥Builder IP addresses
构建服务器的 IP 地址列表可用 了解有关第三方库中已知问题的更多信息。我们不希望经常更改列表。列表包括 "上次修改" 和 "过期" ISO 8601 时间戳,分别指定列表的上次更新时间和我们保证不更改列表的时间。
¥A list of the IP addresses of the build servers is available in this file. We do not expect to change the list often. The list includes "Last-Modified" and "Expires" ISO 8601 timestamps that respectively specify the last time the list was updated and the time until which we commit to not change the list.
Linux 运行器托管在 Google Cloud Platform 中。macOS 运行器托管在我们自己的 macOS 云中。
¥Linux runners are hosted in Google Cloud Platform. macOS runners are hosted in our own macOS cloud.
¥Configuring build environment
每个平台的镜像都有一个特定版本的 Node.js、yarn、CocoaPods、Xcode、Ruby、Fastlane 等。你可以覆盖 eas.json 中的某些版本。如果没有你正在寻找的专用配置选项,你可以使用 npm 钩子 通过 apt-get
或 brew
安装或更新任何系统依赖。考虑到这些自定义是在构建期间应用的,并且会增加你的构建时间。
¥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 are looking for, you can use npm hooks to install or update any system dependencies with apt-get
or brew
. Consider that those customizations are applied during the build and will increase your build times.
为构建选择图片时,你可以使用下面提供的全名或别名之一:auto
、latest
、sdk-50
或 sdk-49
。
¥When selecting an image for the build you can use the full name provided below or one of the aliases: auto
, latest
, sdk-50
or sdk-49
.
使用特定名称可保证环境一致,只需进行少量更新。
¥The use of a specific name guarantees a consistent environment with only minor updates.
当使用 auto
别名时,将根据项目配置、Expo SDK 版本和 React Native 版本选择构建映像。你可以在 Spin up 构建环境构建日志部分中检查用于构建的映像。
¥When using the auto
alias, the build image will be selected based on the project configuration, Expo SDK version, and React Native version. You can check what image is used for a build in the Spin up build environment build logs section.
latest
别名将分配给具有最新版本软件的映像。
¥The latest
alias will be assigned to the image with the most up-to-date versions of the software.
sdk-50
别名将分配给最适合 SDK 50 版本的映像。
¥The sdk-50
alias will be assigned to the image best suited for SDK 50 builds.
sdk-49
别名将分配给最适合 SDK 49 版本的映像。
¥The sdk-49
alias will be assigned to the image best suited for SDK 49 builds.
SDK 别名将随着每个新的 SDK 版本更新。
¥SDK aliases will be updated with every new SDK release.
latest
别名将随着每个新映像的发布而更新。
¥The latest
alias will be updated with every new image release.
注意:如果你未在 eas.json 中提供image
,则默认情况下你的构建将使用auto
别名。
¥Android build server configurations
Android 构建器在隔离环境中的虚拟机上运行。每个构建都有自己专用的 VM 实例。
¥Android builders run on virtual machines in an isolated environment. Every build gets its own dedicated VM instance.
构建资源:
¥Build resources:
medium
: 4 vCPUs, 16 GB RAM (n2-standard-4 Google Cloud machine type)large
: 8 vCPUs, 32 GB RAM (n2-standard-8 Google Cloud machine type)~/.gradle/gradle.properties 中的全局 Gradle 配置:
¥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
~/.npmrc 中的全局 npm 配置:
¥Global npm configuration in ~/.npmrc:
registry=http://10.4.0.19:4873
~/.yarnrc.yml 中的全局 Yarn 配置:
¥Global Yarn configuration in ~/.yarnrc.yml:
unsafeHttpWhitelist:
- '*'
npmRegistryServer: 'http://10.4.0.19:4873'
enableImmutableInstalls: false
¥Android server images
ubuntu-22.04-jdk-17-ndk-r26b
(latest
, sdk-51
)Docker 镜像:ubuntu:jammy-v20240614
¥Docker image: ubuntu:jammy-v20240614
NDK 26.1.10909125
Node.js 18.18.0
Bun 1.1.13
Yarn 1.22.21
pnpm 9.3.0
npm 9.8.1
Java 17
node-gyp 10.1.0
ubuntu-22.04-jdk-17-ndk-r25b
(sdk-50
)Docker 镜像:ubuntu:jammy-20220810
¥Docker image: ubuntu:jammy-20220810
NDK 25.1.8937393
Node.js 18.18.0
Bun 1.0.14
Yarn 1.22.19
PNPM 8.9.2
npm 9.8.1
Java 17
节点 gyp 10.0.1
¥node-gyp 10.0.1
ubuntu-22.04-jdk-11-ndk-r23b
(sdk-49
)Docker 镜像:ubuntu:jammy-20220810
¥Docker image: ubuntu:jammy-20220810
NDK 23.1.7779620
Node.js 18.18.0
Bun 1.0.14
Yarn 1.22.19
PNPM 8.7.5
npm 9.8.1
Java 11
节点 gyp 10.0.1
¥node-gyp 10.0.1
ubuntu-22.04-jdk-17-ndk-r21e
Docker 镜像:ubuntu:jammy-20220810
¥Docker image: ubuntu:jammy-20220810
NDK 21.4.7075529
Node.js 18.18.0
Bun 1.0.14
Yarn 1.22.19
PNPM 8.9.2
npm 9.8.1
Java 17
节点 gyp 10.0.1
¥node-gyp 10.0.1
ubuntu-22.04-jdk-11-ndk-r21e
Docker 镜像:ubuntu:jammy-20220810
¥Docker image: ubuntu:jammy-20220810
NDK 21.4.7075529
Node.js 18.18.0
Bun 1.0.14
Yarn 1.22.19
PNPM 8.7.5
npm 9.8.1
Java 11
节点 gyp 10.0.1
¥node-gyp 10.0.1
ubuntu-22.04-jdk-8-ndk-r21e
(已弃用)¥ubuntu-22.04-jdk-8-ndk-r21e
(deprecated)
Docker 镜像:ubuntu:jammy-20220810
¥Docker image: ubuntu:jammy-20220810
NDK 21.4.7075529
Node.js 18.18.0
Bun 1.0.14
Yarn 1.22.19
PNPM 7.0.0
npm 9.8.1
Java 8
节点 gyp 10.0.1
¥node-gyp 10.0.1
ubuntu-20.04-jdk-11-ndk-r23b
(已弃用)¥ubuntu-20.04-jdk-11-ndk-r23b
(deprecated)
Docker 镜像:ubuntu:focal-20220823
¥Docker image: ubuntu:focal-20220823
NDK 23.1.7779620
Node.js 18.18.0
Bun 1.0.14
Yarn 1.22.19
PNPM 7.0.0
npm 9.8.1
Java 11
节点 gyp 10.0.1
¥node-gyp 10.0.1
ubuntu-20.04-jdk-11-ndk-r21e
(已弃用)¥ubuntu-20.04-jdk-11-ndk-r21e
(deprecated)
Docker 镜像:ubuntu:focal-20220823
¥Docker image: ubuntu:focal-20220823
NDK 21.4.7075529
Node.js 18.18.0
Bun 1.0.14
Yarn 1.22.19
PNPM 7.0.0
npm 9.8.1
Java 11
节点 gyp 10.0.1
¥node-gyp 10.0.1
ubuntu-20.04-jdk-8-ndk-r21e
(已弃用)¥ubuntu-20.04-jdk-8-ndk-r21e
(deprecated)
Docker 镜像:ubuntu:focal-20220823
¥Docker image: ubuntu:focal-20220823
NDK 21.4.7075529
Node.js 18.18.0
Bun 1.0.14
Yarn 1.22.19
PNPM 7.0.0
npm 9.8.1
Java 8
节点 gyp 10.0.1
¥node-gyp 10.0.1
ubuntu-20.04-jdk-11-ndk-r19c
(已弃用)¥ubuntu-20.04-jdk-11-ndk-r19c
(deprecated)
Docker 镜像:ubuntu:focal-20220823
¥Docker image: ubuntu:focal-20220823
NDK 19.2.5345600
Node.js 18.18.0
Bun 1.0.14
Yarn 1.22.19
PNPM 7.0.0
npm 9.8.1
Java 11
节点 gyp 10.0.1
¥node-gyp 10.0.1
ubuntu-20.04-jdk-8-ndk-r19c
(已弃用)¥ubuntu-20.04-jdk-8-ndk-r19c
(deprecated)
Docker 镜像:ubuntu:focal-20220823
¥Docker image: ubuntu:focal-20220823
NDK 19.2.5345600
Node.js 18.18.0
Bun 1.0.14
Yarn 1.22.19
PNPM 7.0.0
npm 9.8.1
Java 8
节点 gyp 10.0.1
¥node-gyp 10.0.1
¥iOS build server configurations
iOS 构建器虚拟机在隔离环境中的 Mac mini 主机上运行。每个版本都有自己的新 macOS 虚拟机。欲了解更多信息,请参阅 iOS 特定的资源类。
¥iOS builder VMs run on Mac mini hosts in an isolated environment. Every build gets its own fresh macOS VM. For more information, see iOS-specific resource classes.
硬件:
¥Hardware:
M1 3.2GHz 8 核,16 GB 内存
¥M1 3.2GHz 8-Core, 16 GB RAM
M2 3.9GHz 8 核,24 GB 内存
¥M2 3.9GHz 8-Core, 24 GB RAM
M2 Pro 3.9GHz 12 核,32 GB RAM
¥M2 Pro 3.9GHz 12-Core, 32 GB RAM
构建资源:
¥Build resources:
~/.npmrc 中的全局 npm 配置:
¥Global npm configuration in ~/.npmrc:
registry=http://10.94.183.70:4873
~/.yarnrc.yml 中的全局 Yarn 配置:
¥Global Yarn configuration in ~/.yarnrc.yml:
unsafeHttpWhitelist:
- '*'
npmRegistryServer: 'http://10.94.183.70:4873'
enableImmutableInstalls: false
¥iOS server images
macos-sonoma-14.5-xcode-15.4
(latest
、sdk-51
、sdk-50
、sdk-49
)macOS Sonoma 14.5
Xcode 15.4 (15F31d)
Node.js 18.18.0
Bun 1.1.13
Yarn 1.22.21
pnpm 9.3.0
npm 9.8.1
fastlane 2.220.0
可可豆 1.14.3
¥CocoaPods 1.14.3
Ruby 2.7
node-gyp 10.1.0
macos-sonoma-14.4-xcode-15.3
macOS Sonoma 14.4.1
Xcode 15.3 (15E204a)
Node.js 18.18.0
Bun 1.0.35
Yarn 1.22.21
PNPM 8.14.1
npm 9.8.1
快车道 2.219.0
¥fastlane 2.219.0
可可豆 1.14.3
¥CocoaPods 1.14.3
Ruby 2.7
节点 gyp 10.0.1
¥node-gyp 10.0.1
macos-ventura-13.6-xcode-15.2
macOS Ventura 13.6
Xcode 15.2 (15C500b)
Node.js 18.18.0
Bun 1.0.23
Yarn 1.22.21
PNPM 8.14.1
npm 9.8.1
快车道 2.219.0
¥fastlane 2.219.0
可可豆 1.14.3
¥CocoaPods 1.14.3
Ruby 2.7
节点 gyp 10.0.1
¥node-gyp 10.0.1
macos-ventura-13.6-xcode-15.1
macOS Ventura 13.6
Xcode 15.1 (15C65)
Node.js 18.18.0
Bun 1.0.14
Yarn 1.22.19
PNPM 8.12.1
npm 9.8.1
快车道 2.217.0
¥fastlane 2.217.0
可可豆 1.14.3
¥CocoaPods 1.14.3
Ruby 2.7
节点 gyp 10.0.1
¥node-gyp 10.0.1
macos-ventura-13.6-xcode-15.0
macOS Ventura 13.6
Xcode 15.0 (15A240d)
Node.js 18.18.0
Bun 1.0.14
Yarn 1.22.19
PNPM 8.7.6
npm 9.8.1
快车道 2.216.0
¥fastlane 2.216.0
可可豆 1.13.0
¥CocoaPods 1.13.0
Ruby 2.7
节点 gyp 10.0.1
¥node-gyp 10.0.1
¥Supported Xcode versions
我们旨在支持所有稳定的 Xcode 版本,这些版本允许你在构建过程中使用时将你的应用提交到 App Store Connect。
¥We aim to support all stable Xcode releases that allow you to submit your app to the App Store Connect when used during the build process.
这通常意味着我们支持最新的稳定 Xcode 版本和之前的版本(直到 Apple 推出新的 新开发版本)。
¥This usually means that we support the latest stable Xcode version and the previous one (until the new minimal Xcode version requirement is introduced by Apple).