我了解理想情况下的部署模型,即所有用户始终将其应用程序更新到最新的应用程序商店版本。但实际上他们没有。如何使用 CodePush 处理反应原生 iOS 应用程序的不同构建版本?考虑以下两种情况:
1) 我一直在使用 CodePush 将新的 js 捆绑包部署到我的应用程序的 1.0.0 版本。现在我发布了 1.1.0 并希望通过 CodePush 提供新代码。据我所知,现在有一种方法可以同时部署到 1.0.0 和 1.1.0,既不需要不同的包,也不需要相同的包。因此,一旦我将捆绑包推出到 1.1.0,就无法更新未通过应用程序商店更新的 1.0.0 应用程序。
2)据我所知,解决此问题的一种方法是仅发布具有增加的内部版本号(CFBundleVersion)但版本字符串(CFBundleShortVersionString)不变的新版本。但这会产生这样的效果,即使是新下载的最新应用商店版本(例如 1.1.0(8))也始终会首先在 codepush 上加载最新的捆绑包。
有没有一种方法可以干净地完成此操作并且无需进行不必要的更新?
我们计划很快优化这个场景,因为正如您提到的,我们意识到这种需求是多么普遍。
同时,我们建议支持此操作的方式(以及我们的许多用户当前正在执行的操作)是在与现有 1.0.0 部署相同的 CodePush 应用程序中为您的 1.1.0 版本创建一个新的 CodePush 部署,并且在将 1.1.0 提交到商店之前,更新您的 Info.plist 文件以指向新的部署密钥。
这样,您就可以向 1.0.0 用户和 1.1.0 用户发布更新。如果您想向两者发布相同的更新,则必须运行发布命令两次,但如果您有仅针对其中一个的更新,则只需将其发布到相应的部署即可。
这个解决方案对人们来说效果很好,并且具有非常明确地说明如何并行管理多个二进制版本的“好处”,但它显然也是一种 hack-ish,并且比应有的更冗长/笨重是。
我们将在下个月简化这种体验,我很乐意收到您关于我们如何最好地适应您的场景的反馈。如果您有任何其他问题/等,请随时直接给我发电子邮件([电子邮件受保护] /cdn-cgi/l/email-protection).
Thanks!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)