使用本地标志在本地运行 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 服务器上执行的相同构建流程。这是一种很有用的方式,可以调试云端构建中出现的失败问题;如果不运行相同的一组步骤,你可能无法复现这些问题。

Terminal
eas build --platform android --local
# 或者
eas build --platform ios --local

先决条件

你需要已通过 Expo 进行身份验证:

本地构建的使用场景

  • 调试 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_CLEANUPEAS_LOCAL_BUILD_WORKINGDIR,你应该能够检查工作目录中 logs 子目录的内容,以读取你的 Xcode 日志。

限制

云端构建可用的一些选项在本地不可用。你需要注意以下限制:

  • 你只能为特定平台构建(all 选项被禁用)。
  • 不支持自定义软件版本,eas.json 中的 nodeyarnfastlanecocoapodsndkimage 字段会被忽略。
  • 不支持缓存。
  • 不支持带有 "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:androidnpx expo run:ios 命令。如果你使用 Continuous Native Generation,你也可以运行 prebuild 来生成你的 androidios 目录,然后继续在相应的 IDE 中打开这些项目,并像构建任何原生项目一样构建它们。更多详情请参见:

本地应用开发

了解如何在本地编译和构建你的 Expo 应用。

要在本地创建生产构建,你的计算机上需要安装 Android Studio 和 Xcode。更多信息请参见以下指南:

在本地创建生产构建

了解如何在你的计算机上为 Expo 应用在本地创建生产构建。

无论采用以上哪种方式,你遵循的流程都不同于使用 EAS Build 在云端创建构建——这正是 eas build --local 标志的用途。