从 Expo Go 切换到开发构建
编辑页面
如何将你的 Expo Go 项目切换为使用开发构建。
For the complete documentation index, see llms.txt. Use this Use this file to discover all available pages.
要从 Expo Go 切换到开发构建,你需要按照以下步骤操作:
1
安装 expo-dev-client
Expo Dev Client 库包含启动器 UI(如下方截图所示)、开发菜单、用于测试空中更新的扩展等等。Expo Go 应用内置了开发菜单,这就是为什么你需要为开发构建单独安装它。
- npx expo install expo-dev-client我们建议使用
expo-dev-client以获得最佳开发体验,但不安装这个库也可以使用开发构建。如果不使用 dev client,请在 第 3 步 中使用--dev-client启动 bundler。否则,它将默认在 Expo Go 中打开。
2
构建你的原生应用
使用 Expo Go 时,你只需要构建 JavaScript bundle,但使用开发构建时,你还需要编译原生应用。使用 Expo,构建原生应用分为两部分:
- 生成原生的 android 和/或 ios 目录(关于何时以及如何执行,请阅读更多)
- 使用原生构建工具编译原生应用
一旦你构建了原生应用,除非你添加或更新了包含原生代码的库,或者更改了任何原生代码或配置,例如应用名称,否则无需再次构建。
当你创建新项目时,android 和 ios 目录会自动添加到 .gitignore 中,因此它们不会被提交到 Git。这确保你始终可以在本地或 CI 上根据需要使用 CNG 重新生成代码,并且永远不必手动编辑原生代码。
选项 1:在本地机器上构建
要在本地机器上构建原生应用,请按照 Android 和 iOS 平台的环境搭建指南进行操作。这包括设置和配置原生构建工具,例如 Android 的 Android Studio 和 iOS 的 Xcode。
完成全部设置后,运行以下命令:
- npx expo run:android- npx expo run:ios默认情况下,这将把应用构建并安装到 Android 模拟器 / iOS 模拟器上。如果你需要在手机上运行构建,请将其连接到电脑(在 Android 上,如有提示请选择信任设备并允许 USB 调试;在 iOS 上,请启用开发者模式)然后使用 --device 标志运行上述命令。
选项 2:在 EAS 上构建
以下情况下,在 EAS 服务器上构建会很有用:
- 你无法或不想搭建本地开发环境
- 你想构建 iOS 应用但没有 Mac
- 你想与团队共享开发构建
如何在 EAS 上创建你的开发构建
3
Prebuild
Prebuild 是 Expo 项目特有的一个概念。它指的是根据你的本地配置和属性生成 android 和 ios 目录的过程。
什么时候应该运行 prebuild
如果你通过 npx expo run:android|ios 进行构建,并且更改了任何原生依赖或配置,例如:
- 安装或更新包含原生代码的库
- 更改 应用配置(
app.json) - 升级你的 Expo SDK 版本
在这些情况下,你需要使用以下命令重新构建原生目录:
- npx expo prebuild --clean然后,使用以下命令基于更新后的原生代码重新构建应用:
- npx expo run:android- npx expo run:ios什么时候不需要运行 prebuild
所有 Expo 构建工具(npx expo run:android|ios 和 eas build)都会在找不到现有原生文件夹时自动执行 prebuild。这意味着当你第一次运行 npx expo run:android|ios 或 eas build 时,无需手动运行 prebuild。
了解连续原生生成(CNG)和 Prebuild 的理念与优势