与团队分享预览

编辑

了解如何使用 EAS Update 发送 OTA 更新并与团队分享预览。


更新通常修复小错误,并在应用商店发布之间推送小改动。它们允许更新我们示例应用的非原生部分,例如 JavaScript 代码、样式和图像。

在这一章中,我们将使用 EAS Update 与我们的团队分享更改。这将帮助 我们和我们的团队快速分享预览 更改。

观看:如何与团队分享预览
观看:如何与团队分享预览

1

安装 expo-updates 库

要初始化我们的项目并发送更新,我们需要使用 expo-updates 库。运行以下命令安装它:

Terminal
npx expo install expo-updates

2

配置 EAS Update

要使用 EAS Update 初始化我们的项目,我们需要遵循以下步骤:

  • 由于我们为应用的配置使用动态 app.config.js,因此必须添加 updatesruntimeVersion 属性,以使我们的项目与 EAS Update 兼容。运行以下命令从 EAS 获取这些属性及其值,并手动复制到 app.config.js
Terminal
eas update:configure
非动态(app.json)项目怎么办?

如果一个项目不使用动态应用配置(使用 app.json 而不是 app.config.js),上述命令将配置我们的应用以与 EAS Update 兼容,并将正确的属性添加到 app.jsoneas.json

  • 重新运行 eas update:configure 以继续设置过程。每个构建配置文件中都应添加 channeleas.json
eas.json
{ "build": { "development": { %%placeholder-start%%... %%placeholder-end%% "channel": "development" }, "ios-simulator": { %%placeholder-start%%... %%placeholder-end%% }, "preview": { %%placeholder-start%%... %%placeholder-end%% "channel": "preview" }, "production": { %%placeholder-start%%... %%placeholder-end%% "channel": "production" } } %%placeholder-start%%... %%placeholder-end%% }
请注意,eas update:configure 命令将 channel 添加到 eas.json 中的每个构建配置文件中。然而,我们的 ios-simulator 配置文件扩展了 development 配置文件,拥有一个单独的 channel 是没有意义的。我们可以安全地从上述配置中删除 ios-simulator.channel
什么是 channel?

Channel 用于将构建分组在一起。如果我们有一个 Android 和一个 iOS 构建,两个都在应用商店中,我们可以将它们都给予生产 channel。稍后,我们可以告诉 EAS Update 以目标生产 channel,因此我们的更新将影响所有具有生产 channel 的构建。

3

创建开发构建

我们需要创建一个新的开发构建,因为我们最后的构建不包含 expo-updates 库。运行以下命令:

Terminal
eas build --platform android --profile development

我们使用开发构建来演示 Android 设备的更新。然而,我们可以使用 --platform all--platform ios 来创建适用于两个平台或仅 iOS 的构建。

在新版本的开发构建创建后,请确保在设备上安装它。

4

修改应用的 JavaScript 代码

让我们修改示例应用的 JavaScript 代码。如果您没有使用 Sticker Smash 应用,您可以修改代码的任何部分,以查看应用中的更改。

我们将修改示例应用中第一个按钮的文本,将 选择照片 更改为 选择照片

app/(tabs)/index.tsx
<Button theme="primary" label="Select a photo" onPress={pickImageAsync} />

5

发布更新

我们不想要创建一个新构建与团队分享此更改进行测试,而是让我们发布一个更新:

Terminal
eas update --channel development --message "Change first button label"

在上述命令中,我们使用了 development channel。每次更新都与 channel 名称 相关联。这类似于我们用 git 进行的每次提交,与一个 git 分支相关联。

因此,通过在我们的构建配置文件中使用 development channel,然后发布更新,我们要求 EAS 将此更新发送到具有 development channel 的构建。当我们创建 EAS Update channel 时,它自动与同名的分支映射。

更新发布后,CLI 将提示我们有关它的信息。

点击 Website link ,在 EAS 仪表盘的 Over-the-air updates > Update groups 下查看更新:

6

在开发构建中实时预览更新

要在开发构建中预览实时更新:

  • 在开发构建中登录你的 Expo 账号。
  • 打开 Extensions 标签页。
  • EAS Update 下查找 Branch: development
  • 点击 Open 以访问更新。

7

使用预览或生产构建共享更改

非开发构建(预览或生产)的更新会在应用启动并请求任何新更新时自动下载到设备。

任何运行预览或生产构建的团队成员将收到我们推送到这些特定分支的更新。

例如,对于 preview 构建,我们可以运行:

Terminal
eas update --channel preview --message "Change first button label"

这是我们已为 preview 构建发布更新的示例。要测试更新,请强制关闭并重新打开应用两次,以下载并查看更改:

总结

第十章:与团队分享预览

我们成功配置了 EAS Update,以便跨平台管理和发布无线更新,并探索了获取更新以进行审核的方法。

在下一章中,了解如何从 GitHub 存储库触发构建。

Next: 从 GitHub 存储库触发构建