本文假设你已创建基本的 Expo 项目。创建方法请参阅 Expo 项目创建:
Windows、
Mac。
在了解开发构建之前,先来看看默认使用的 Expo Go 应用。
使用 npx create-expo-app 创建第一个 React Native 项目并运行 npx expo start 后,你很可能会用 Expo Go 开发。Expo 团队制作了这款原生应用,并将它发布到 Google Play 和 Apple App Store,方便开发者快速开始编写代码。它是一个包含多个原生库的
沙箱应用
,具体可查看依赖列表。开发者可以在本地更新应用的 JavaScript 代码,然后在 Expo Go 中查看变化。(来源:
Expo 官方文档↗)
简单来说,Expo Go 是一个预先构建好的应用外壳,让你能修改 JavaScript 并快速查看结果。但它也有限制:无法修改原生代码。因此,某些库或推送通知等功能可能无法在 Expo Go 中运行。为了解决这类问题,Expo 提供了修改原生代码的方法,而开发构建让这个过程更简单。
在运行项目的终端中按 m,会弹出开发者菜单。Expo Go 已经内置了这项功能,无需另外安装。安装 expo-dev-client 后,也可以在自己的开发构建中使用这个菜单。
npx expo install expo-dev-client
主要有两种方式:通过 EAS 构建,或在本地构建。
EAS 是 Expo Application Services 的缩写,是 Expo 提供的云服务。它提供构建、更新和提交工作流相关的工具,可用于构建 Android 和 iOS 应用。计划发布到应用商店或进行团队协作时,可以考虑使用 EAS。请留意,这是云服务,不在本地执行,而且有用量限制。
开始前,用下面的命令安装 EAS CLI 并登录。
npm install -g eas-cli
eas login
eas build --platform android --profile development
如果要为 iOS 模拟器构建,请在项目根目录添加 eas.json 文件,内容如下。
{
"build": {
"development": {
"ios": {
"simulator": true
}
}
}
}
然后运行下面的命令。
eas build --platform ios --profile development
如果要在真机上构建,请使用以下命令。
npx expo run:ios --device
例如,iOS 模拟器的构建完成后,系统会提示是否下载。也可以在
Expo 控制台↗中查看生成的构建。
点击构建下载后,会获得一个 ~.tar.gz 文件。解压得到应用包,把它拖放到模拟器中即可安装。
构建完成后,应用会安装到模拟器。这时就有了一个可以修改原生代码、无需依赖 Expo Go 的开发环境。用 npm start 启动后,按 s 打开开发构建的应用,即可继续开发。
现在,项目根目录应该已生成与所构建平台对应的目录(ios、android)。你可以修改这些目录中的原生代码,并验证在 Expo Go 中无法验证的改动。