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

fed*_*qui 5 react-native expo

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

一段时间后,我在Expo的Publishing文档中发现了该文档,文档expo publish允许您创建内置在Expo中的OTA(“空中下载”)更新,并根据以下答案自动更新应用程序:

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

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

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

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

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

Jac*_*ers 5

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

  • 检查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允许)就显示应用,或者立即显示。

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

希望这可以帮助!

  • 实际上,我还没有做太多的尝试。我们只是删除了它,以确保人们尽可能多地使用最新版本。如果这对您而言并不重要,那么我可能会将其设置为15秒左右,以确保无论连接有多糟糕,它都会“诚实尝试”以获取最新版本。 (2认同)