首页 文章

CodePush:如何部署到同一部署配置的多个构建版本?

提问于
浏览
6

我了解理想情况的部署模型,所有用户总是将他们的应用更新到最新的应用商店版本 . 但实际上他们没有 . 如何使用CodePush处理react-native iOS应用程序的不同构建版本?考虑以下两种情况:

1)我一直在使用CodePush将新的js bundels部署到我的应用程序的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 回答

  • 7

    我们计划很快优化这种情况,因为正如您所提到的,我们意识到它的需求是多么普遍 .

    与此同时,我们建议支持此方式(以及我们的许多用户目前正在做的事情)的方式是在与现有1.0.0部署相同的CodePush应用程序内为1.1.0版本创建新的CodePush部署,以及在将1.1.0提交到商店之前,请更新Info.plist文件以指向新的部署密钥 .

    这样,您可以向1.0.0用户和1.1.0用户发布更新 . 如果要向两者发布相同的更新,则必须运行release命令两次,但如果您的更新仅针对一个,则只需将其发布到相应的部署即可 .

    这个解决方案对于人们来说效果很好,并且具有“非常明确”关于如何并行管理多个二进制版本的“好处”,但它显然也是一种黑客攻击,并且比它应该更加冗长/笨拙是 .

    我们将在下个月简化这一体验,我很乐意收到您对我们如何最好地适应您的方案的反馈 . 如果您有任何其他问题/等(joncart@microsoft.com),请随时给我发电子邮件 .

    谢谢!

相关问题