使用 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 分发的测试构建。
{ "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 的信息。