Expo Go 与 development build
大多数设计都能在 Expo Go 中运行。当某个设计不行时,徽章代表什么意思。
徽章代表什么
每个设计都带有支持 Expo Go的徽章,或者没有。这不是主观判断:它是根据该设计实际导入的包,对照哪些包需要原生代码的表格自动得出的。如果一个设计导入了 Expo Go 未内置的内容,徽章就会消失,详情页会说明是哪个包及原因,提示词中也会重复这条警告。
| 徽章 | 需要运行的命令 | 适用情形 |
|---|---|---|
| 支持 Expo Go | npx expo start | 几乎所有设计。扫描二维码即可运行。 |
| 无徽章 | npx expo run:ios | 该设计需要在你的机器上编译一次 development build。 |
为什么大多数设计都符合条件
这些设计所依赖的库都内置于 Expo Go 中:Reanimated、gesture-handler、safe-area-context、svg、expo-image、Google Fonts 包和 Phosphor 图标。整体风格不需要任何自定义原生模块,因此常见情况就是扫码即用。
- 动效使用的是已内置的 Reanimated。
- 图标使用 Phosphor,通过同样内置的 react-native-svg 绘制。
- 图片通过 expo-image 使用远程 URL,因此没有需要构建的内置资源。
制作 development build
只需一条命令,且只需一次。完成后,你仍照常使用 npx expo start,只有模拟器或设备上的客户端应用会发生变化。
npx expo run:ios
# or, without Xcode locally:
npx eas build --profile development --platform ios徽章是推导出来的,而非手动声明
没有人手动输入它。它是在构建时根据设计的真实导入列表得出的,因此当设计被编辑时,它不会出现过时不同步的情况。