首页 > 解决方案 > 如何在不使用“expo publish”并将更新推送给我的用户的情况下创建我的裸 React Native 应用程序的发布版本?

问题描述

我是 React Native 开发的新手。我使用 expo 创建了一个 React Native 应用程序。我最终将它弹出到裸工作流中。到目前为止一切都很好。我能够为 Android 构建一个 app bundle,为 iOS 构建一个 .ipa。在构建应用程序并将其部署到两个应用程序商店之前,我使用“expo publish”来更新代码/捆绑包。

稍后在进一步开发应用程序时,我输入了“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 更新。我只想构建一个独立的应用程序。我做错了什么,我该如何解决?这是一个非常令人沮丧的过程。

标签: reactjsreact-nativeexporeact-native-iosexpo-publish

解决方案


一定要开始使用发布渠道,例如分期和生产来保护您的用户。您可以发布到这些特别喜欢

expo publish --release-channel staging

同样,您可以构建这些渠道,例如

expo build:ios --release-channel staging

世博会文档解释得很好:https ://docs.expo.io/distribution/release-channels/#publish-with-channels

最后,由于您使用的是 Bare Workflow,因此请查看 Expo 团队最近发布的关于 OTA 改进更新的博客

https://blog.expo.io/over-the-air-updates-from-expo-are-now-even-easier-to-use-376e2213fabf

您可能感兴趣的是“此新(发布版本)更新不会自动发布,只会存在于与其捆绑的二进制文件中”

OTA 更新很棒,但您需要了解它们的工作原理。


推荐阅读