我是React Native开发的新手。我使用expo创建了一个React Native应用程序。我最终将其弹出到裸露的工作流程中。到目前为止一切都很好。我能够为Android构建一个应用程序包,为iOS构建一个.ipa。在构建应用程序并将其部署到两个应用程序商店之前,我使用“博览会发布”来更新代码/捆绑包。
稍后在进一步开发应用程序时,我键入“ expo publish”,因为我想构建一个独立的捆绑包来测试发行版本。我一直在发布版本上获取缓存版本,而expo publish似乎是唯一可以更新发布版本的内容。我没有意识到这会向所有用户推送OTA更新。我以为这只是将更新推送到博览会服务器,我可以选择启用或退出OTA更新。幸运的是,一切正常。
现在,我进一步开发了该应用程序。在iOS上,调试版本很好。但是我无法在iOS版本上获得更新的捆绑包。我得到旧代码。为什么?我不明白这个过程。我什至尝试了以下脚本:
react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/main.jsbundle --assets-dest ios/assets
我认为这将建立一个新的“更新”捆绑包。没有运气!我什至从ios目录中删除了main.jsbundle文件,并对其进行了重建,但仍然有旧代码。
我不想使用OTA更新。我只想构建一个独立的应用程序。我在做什么错,我该如何解决?这是一个非常令人沮丧的过程。
答案 0 :(得分:2)
一定要开始使用发布渠道,例如分期和生产以保护您的用户。您可以像
一样专门发布这些内容 expo publish --release-channel staging
,同样,您可以建立这些渠道,例如
expo build:ios --release-channel staging
博览会文档很好地解释了这一问题:https://docs.expo.io/distribution/release-channels/#publish-with-channels
最后,由于您处于Bare Workflow状态,因此可以查阅世博团队最近发布的有关OTA改进更新的博客
https://blog.expo.io/over-the-air-updates-from-expo-are-now-even-easier-to-use-376e2213fabf
您可能会感兴趣的行是“此新(发布版本)更新将不会自动发布,仅存在于捆绑在一起的二进制文件中”
OTA更新很棒,但是您需要了解它们的工作原理。