【问题标题】:Do OTA updates in Expo get in motion on the first opening after brand new download from the stores?Expo 的 OTA 更新是否会在从商店全新下载后首次开放时启动?
【发布时间】:2019-04-05 09:42:54
【问题描述】:

我使用 React Native 开发了一个应用程序并使用 Expo 分发它。我将最终版本发布到 Google Play 和 Apple Store。

一段时间后,我在Expo's docs on Publishing 中发现expo publish 允许您创建内置于 Expo 中的 OTA(“无线”)更新,并根据this answer 自动更新应用程序:

独立应用知道在您应用的已发布网址上查找更新。

我对此进行了测试并且效果很好。

但是,现在我看到人们从商店(即 Google Play 或 Apple Store)下载该应用程序的人显然获得了该应用程序的初始版本,而不是更新版本。

OTA 更新的具体工作流程是什么?他们第一次打开 Google Play 和 Apple Store 时会去“替换”现有版本吗?还是他们需要重新打开它才能获得更新?

究竟是什么触发了应用的更新?

【问题讨论】:

    标签: react-native expo


    【解决方案1】:

    我们也遇到过类似的问题。在您的情况下,我可以看到两件事可能导致这种情况:

    • 如果设置了updates.fallbackToCacheTimeout,则签入app.json。如果已设置,则 expo 在显示最后下载的版本(将是初始下载后的初始版本)之前尝试下载最新更新的时间。
    • 如果您有较大的更新,expo 会尝试下载更新 30 秒,然后再显示您应用的最新版本。

    点击此处了解更多信息:https://docs.expo.io/versions/latest/guides/configuring-ota-updates/

    OTA 更新不会替换从应用商店下载的版本,它们首先存储在设备的缓存中,然后在下载后在应用启动时运行。来源https://docs.expo.io/versions/latest/sdk/updates/

    更新下载会在应用启动时自动触发,然后,根据设置,它会在显示应用之前等待(只要updates.fallbackToCacheTimeout 允许),或者立即显示。

    您可以强制应用程序运行最新更新(如果您有一个等待更新),只需强制退出应用程序,然后重新启动。

    希望这会有所帮助!

    【讨论】:

    • 哦,酷!我将 updates.fallbackToCacheTimeout 设置为 0,在您的链接中我读为 这将允许您的应用立即使用缓存的捆绑包启动,同时在后台下载较新的捆绑包以供将来使用
    • 所以要明确一点(我是世博会的新手):刚从应用商店或google play下载应用程序的全新用户,将获得更新版本他们运行一次并强制退出一次之后?是否有任何设置允许在第一次打开应用时出现更新版本?
    • 这也是我们的问题 :) 没错!如果您想确保人们拥有最新版本(从应用商店或 google play 下载后),请删除updates.fallbackToCacheTimeout 或将其设置为合理的值(30 秒是应用启动的较长时间)
    • 因此,当我当前设置为 0 时,更新将在后台运行并准备好下次...根据您的经验,哪个值可以在两件事之间找到最佳平衡(确保更新是下载,但不要因为运行时间过长而惹恼用户)?
    • 我实际上并没有尝试过太多。我们刚刚删除了它,以确保人们尽可能地使用最新版本。如果它对您来说不是那么重要,我可能会将其设置为 15 秒左右,以确保它在获取最新版本时做出“诚实的尝试”,无论连接有多糟糕。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-15
    • 2020-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-04
    相关资源
    最近更新 更多