我在 Expo SDK 50 中使用 expo-updates 时遇到困难。我最近迁移到 SDK 50 并注意到我之前使用的 --public-url 选项不再可用。我知道这个选项已被另一种方法取代,但我不确定正确的方法。
其他详细信息:
我在一个裸项目中使用 Expo SDK 50。 在迁移之前,我使用 expo-updates 和 --public-url 选项来指定我的资产的公共 URL。 现在 --public-url 选项不再可用,我正在寻找一种替代方法来指定我的资产的公共 URL,最好将它们托管在 S3 服务器上。
在 expo-updates 中指定资产的公共 URL 而不使用 --public-url 的推荐方法是什么? 如何在 S3 服务器上托管我的资产并将其与 Expo SDK 50 中的 expo 更新一起使用? 我可以不用eas吗?
非常感谢您的协助!
在 expo-updates 代码中搜索后,它对我有用:
<meta-data android:name="expo.modules.updates.EXPO_UPDATE_URL" android:value="https://your-url-to-access-config/android-index.json" />
<meta-data android:name="expo.modules.updates.EXPO_RUNTIME_VERSION" android:value="1.0.0" />
<key>EXUpdatesRuntimeVersion</key>
<string>1.0.0</string>
app.json
"runtimeVersion":"7.26"
之后,您必须有一个脚本(在我的例子中是一个 shell 脚本)来生成 android-config.json 和 ios-config.json 来下载应用程序的捆绑包和资产。 您的 json 包含:
{
"releaseId": "A1A179D4-1129-43DC-B6CF-BDC473206E04",
"commitTime": "2024-05-23T08:40:46Z",
"bundleUrl": "https://your-url-to-access-the-js-bundle/index-your-app.js",
"runtimeVersion": "1.0.0",
"scheme": "myapp",
"bundledAssets": [
"asset_02b45454354335ccbff40c9",
"asset_02b4545675f40c9",
]
}
expo-update检查runtimeVersion和commitTime来下载JS并应用。
⚠️ 对于 iOS,commitTime 需要毫秒