从商店全新下载后,Expo中的OTA更新会在首次开放时启动吗?

时间:2019-04-05 09:42:54

标签: react-native expo

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

一段时间以后,我在Expo's docs on Publishing中发现,expo publish允许您创建内置在Expo中的OTA(“空中下载”)更新,并根据{{3 }}:

  

独立应用程序知道要在您应用程序的已发布URL中查找更新。

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

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

OTA更新的确切工作流程是什么?他们会在第一次打开Goog​​le Play和Apple Store时去“替换”现有版本吗?还是他们需要重新打开以获取更新?

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

1 个答案:

答案 0 :(得分:1)

我们一直遇到类似的问题。在您的情况下,我可以看到可能导致此问题的两件事:

  • 检入app.json是否设置了updates.fallbackToCacheTimeout。如果已设置,则expo将在显示最近下载的版本(将是首次下载后的初始版本)之前尝试下载最新更新的时间。
  • 如果更新较大,expo将在显示应用程序的最新版本之前尝试下载更新30s。

在此处查看更多信息:https://docs.expo.io/versions/latest/guides/configuring-ota-updates/

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

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

您可以通过强制退出应用程序然后重新启动来强制应用程序运行最新更新(如果有一个等待状态)。

希望这会有所帮助!