使用 EAS Update

编辑页面

了解如何将 EAS Update 与 EAS Build 一起使用。


For the complete documentation index, see llms.txt. Use this Use this file to discover all available pages.

EAS Build 为 expo-updates 库提供了一些特殊优势。特别是,你可以在 eas.json 中配置 channel 属性,EAS Build 会在构建时负责将其更新到你的原生项目中。

本文档涵盖了将 expo-updates 库与 EAS Build 一起使用时的特定问题。有关使用 EAS Update 配置该库的更一般信息,请参阅 Getting started with EAS Update

为构建配置文件设置 channel

每个 build profile 都可以分配到一个 channel,因此,针对某个配置文件生成的构建更新只会拉取发布到其 channel 的这些版本。

以下示例展示了你可能如何将 "production" channel 用于生产构建,以及将 "staging" channel 用于通过 internal distribution 分发的测试构建。

eas.json
{ "build": { "production": { "channel": "production" }, "preview": { "channel": "staging", "distribution": "internal" } } }

二进制兼容性和运行时版本

你的原生运行时可能会在每次构建时发生变化,这取决于你是否以会改变与 JavaScript 的 API 协议的方式修改了代码。如果你将一个 JavaScript bundle 发布到一个不兼容原生运行时的二进制文件中(例如,JavaScript bundle 期望存在的某个函数不存在),那么你的应用可能无法按预期工作,或者可能会崩溃。

我们建议为你的应用的每个二进制版本使用不同的 runtime version。每当你更改原生运行时(在托管应用中,这通常发生在你添加或移除原生库,或修改 app.json 时),你都应该增加 runtime version。

在开发构建中预览更新

使用 runtimeVersion 字段发布的更新无法在 Expo Go 中加载。相反,你应该使用 expo-dev-client 来创建开发构建。

环境变量和 eas update

在构建配置文件的 env 字段中设置的环境变量,在运行 eas update 时不可用。了解更多关于在 EAS Update 中使用 environment variables 的信息。