使用本地标志在本地运行 EAS Build
编辑页面
了解如何使用 --local 标志在你的机器或自定义基础设施上本地使用 EAS Build。
For the complete documentation index, see llms.txt. Use this Use this file to discover all available pages.
你可以通过使用 eas build --local 标志,在本机上直接运行通常在 EAS Build 服务器上执行的相同构建流程。这是一种很有用的方式,可以调试云端构建中出现的失败问题;如果不运行相同的一组步骤,你可能无法复现这些问题。
- eas build --platform android --local# 或者- eas build --platform ios --local先决条件
你需要已通过 Expo 进行身份验证:
- 运行
eas login - 或者,使用 基于令牌的身份验证 设置
EXPO_TOKEN
本地构建的使用场景
- 调试 EAS 服务器上的构建失败。
- 限制使用第三方 CI/CD 服务的公司政策。使用本地构建时,整个流程都在你的基础设施上运行,与 EAS 服务器的唯一通信是:
- 确认项目
@account/slug存在 - 如果你使用托管凭据,则下载这些凭据
- 确认项目
使用本地构建进行调试
如果你在 EAS 服务器上遇到构建失败,并且无法通过查看日志确定原因,那么在本地调试该问题可能会有所帮助。为了简化这一过程,我们支持若干环境变量来配置本地构建流程。
EAS_LOCAL_BUILD_SKIP_CLEANUP=1- 将其设置为禁用在构建流程完成后清理工作目录。EAS_LOCAL_BUILD_WORKINGDIR- 指定构建流程的工作目录,默认情况下它位于 /tmp 目录中的某个位置(具体位置取决于平台)。EAS_LOCAL_BUILD_ARTIFACTS_DIR- 构建成功后构件被复制到的目录。默认情况下,这些文件会被复制到当前目录;如果你连续运行很多次构建,这可能并不理想。
如果你在 iOS 构建中使用 EAS_LOCAL_BUILD_SKIP_CLEANUP 和 EAS_LOCAL_BUILD_WORKINGDIR,你应该能够检查工作目录中 logs 子目录的内容,以读取你的 Xcode 日志。
限制
云端构建可用的一些选项在本地不可用。你需要注意以下限制:
- 你只能为特定平台构建(
all选项被禁用)。 - 不支持自定义软件版本,eas.json 中的
node、yarn、fastlane、cocoapods、ndk、image字段会被忽略。 - 不支持缓存。
- 不支持带有 "Secret" 可见性 的 EAS 环境变量(请改为在本地环境中设置它们)。
- 你需要自行确保环境中已安装所有必要工具:
- Node.js/Yarn/npm
- fastlane(仅限 iOS)
- CocoaPods(仅限 iOS)
- Android SDK 和 NDK
- 在 Windows 上,你可以使用 WSL 进行本地 EAS Builds。不过,我们并未正式测试该平台,也不支持 Windows 用于本地构建(支持 macOS 和 Linux)。
在本地编译开发版和生产版应用
要使用 Expo CLI 在本地编译你的开发应用,请改用 npx expo run:android 或 npx expo run:ios 命令。如果你使用 Continuous Native Generation,你也可以运行 prebuild 来生成你的 android 和 ios 目录,然后继续在相应的 IDE 中打开这些项目,并像构建任何原生项目一样构建它们。更多详情请参见:
了解如何在本地编译和构建你的 Expo 应用。
要在本地创建生产构建,你的计算机上需要安装 Android Studio 和 Xcode。更多信息请参见以下指南:
了解如何在你的计算机上为 Expo 应用在本地创建生产构建。
无论采用以上哪种方式,你遵循的流程都不同于使用 EAS Build 在云端创建构建——这正是 eas build --local 标志的用途。