从 Expo Go 转换为开发构建
编辑
如何将你的 Expo Go 项目迁移以使用开发构建。
要从 Expo Go 迁移到开发构建,您需要按照以下步骤进行:
1
安装 expo-dev-client
Expo Dev Client 库包含启动器 UI(如下图所示)、开发菜单、用于测试 OTA 更新的扩展等。Expo Go 应用内置了开发菜单,这也是为什么您需要单独为开发构建安装它。
- npx expo install expo-dev-client我们建议使用
expo-dev-client以获得最佳开发体验,但也可以在不安装此库的情况下使用开发构建。如果不使用开发客户端,在 Step 3 中,请使用--dev-client启动 bundler。否则,它将默认在 Expo Go 中打开。
2
构建您的原生应用
使用 Expo Go 时,只需要构建 JavaScript bundle,但在开发构建中你还需要编译原生应用。使用 Expo 构建原生应用分为两部分:
- 生成原生的 android 和/或 ios 目录(read more 何时以及如何需要这样做)
- 使用原生构建工具来编译原生应用程序
一旦你构建了原生应用,除非你添加或更新带有原生代码的库,或更改任何原生代码或配置(如应用名称),否则你不需要再次构建它。
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 上创建你的 Development Build
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)和预构建的理念与好处