如何将更新 ID 追溯到 EAS 仪表盘
编辑页面
了解在使用 EAS Update 和 expo-updates 库时,如何将更新 ID 追溯到 EAS 仪表盘。
For the complete documentation index, see llms.txt. Use this Use this file to discover all available pages.
在使用 EAS Updates 时,你可能会遇到需要将 updateId 追溯到 EAS 仪表盘 的场景。这可能很有挑战性,因为无论 Updates.isEmbeddedLaunch 是 true 还是 false,Updates.updateId 都会始终返回一个 ID。不过,如果应用运行的是嵌入式更新,那么尝试在 EAS 仪表盘 中查找 updateId 会导致错误。这是因为嵌入式更新不会在仪表盘中被跟踪。
确定更新是嵌入式还是已下载
为避免此问题,你可以使用 Updates.isEmbeddedLaunch 属性来确定应用当前运行的是嵌入式更新,还是从服务器下载的更新。如果 Updates.isEmbeddedLaunch 为 true,则当前运行的更新是嵌入在构建中的,这意味着它不会出现在 EAS 仪表盘中。
下面是一个示例,展示如何显示更新是嵌入式还是已下载:
update-status.tsx
import * as Updates from 'expo-updates'; import { Text } from 'react-native'; export default function UpdateStatus() { return ( <Text> {Updates.isEmbeddedLaunch ? '(嵌入式) ❌ 你无法在 EAS 仪表盘中追溯此更新。' : '(已下载) ✅ 你可以在 EAS 仪表盘中追溯此更新。'} </Text> ); }
当你导航到 EAS 仪表盘中的某个更新组时(打开你的项目,选择 Over-the-air updates,然后点击某个特定更新),URL 会显示为:
https://expo.dev/accounts/[accountName]/projects/[projectName]/updates/[updateGroupId]
你可以将 updateGroupId 替换为 Updates.updateId,以直接导航到某个平台的特定更新:
https://expo.dev/accounts/[accountName]/projects/[projectName]/updates/[updateId]
这会打开对应于该平台特定更新的相应更新组。