This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.
资源选择与排除
编辑页面
了解如何使用资源选择功能,并验证更新是否包含所有必需的应用资源。
Experimental resource selection allows developers to specify that only certain resources should be included in an update. This can significantly reduce the number of resources that need to be uploaded to the update server and downloaded from the update server. This feature can be used with the EAS Update server or any custom server that conforms to the expo-updates protocol.
SDK 52 has promoted this feature to generally available.
使用资源选择
要在 SDK 52 以下版本中使用资源选择,请在应用配置中包含 extra.updates.assetPatternsToBeBundled 属性。它应定义一个或多个文件匹配模式(正则表达式)。例如,app.json 文件中的模式可如下定义:
"expo": { %%placeholder-start%%... %%placeholder-end%% "extra": { "updates": { "assetPatternsToBeBundled": [ "app/images/**/*.png" ] } } }
要在 SDK 52 及更高版本中使用资源选择,请在应用配置中包含 updates.assetPatternsToBeBundled 属性。它应定义一个或多个文件匹配模式(正则表达式)。例如,app.json 文件中的模式可如下定义:
"expo": { %%placeholder-start%%... %%placeholder-end%% "updates": { "assetPatternsToBeBundled": [ "app/images/**/*.png" ] } }
添加此配置后,app/images 下所有子目录中的所有 .png 文件都会包含在更新中。你还需要确保这些资源会在你的 JavaScript 代码中被引用。
如果 app 配置中未包含 assetPatternsToBeBundled,则所有由打包器解析得到的资源都会包含在更新中(与 SDK 49 及更早版本的行为一致)。
信息 资源选择控制哪些资源有资格进行空中更新。它不会改变哪些资源会被打包到原生二进制文件中,因此不会减少应用启动时间。
验证更新是否包含所有必需的应用资源
使用资源选择时,不匹配任何文件模式的资源仍会在 Metro 打包器中解析。但是,这些资源不会上传到更新服务器。你必须确保未包含在更新中的资源已构建进应用的原生构建中。
如果你正在本地构建应用,或者可以访问用于发布更新的正确构建(具有相同的 runtime version),那么请使用 npx expo-updates assets:verify 命令。它可以帮助你检查发布更新时是否会包含所有必需的资源:
- npx expo-updates assets:verify <dir>这个新命令属于expo-updatesCLI,它也支持 EAS Update 代码签名。它不属于 Expo CLI 或 EAS CLI。仅适用于 (expo-updates>= 0.24.10)。
你也可以将 --help 选项与该命令一起使用,以查看可用选项:
| 选项 | 描述 |
|---|---|
<dir> | Expo 项目的目录。默认值:当前工作目录。 |
-a, --asset-map-path <path> | 指向通过命令 npx expo export --dump-assetmap 生成的导出结果中的 assetmap.json 的路径。 |
-e, --exported-manifest-path <path> | 指向通过命令 npx expo export --dump-assetmap 生成的导出结果中的 metadata.json 的路径。 |
-b, --build-manifest-path <path> | 指向在 Expo 应用构建中由 expo-updates 创建的 app.manifest 文件的路径(android 或 ios 均可)。 |
-p, --platform <platform> | 选项:["android", "ios"] |
-h, --help | 使用信息。 |
示例
查看一个使用资源选择、assets:verify 命令以及其他 EAS Update 功能的可运行示例。