我理解理想情况的部署模型,即所有用户总是将他们的应用更新到最新的应用商店版本。但实际上他们没有。如何使用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上加载最新的捆绑包。
有没有办法干净利落地完成这项工作而没有不必要的更新?
答案 0 :(得分:7)
我们计划很快优化这种情况,因为正如您所提到的,我们意识到它的需求是多么普遍。
与此同时,我们建议支持此方式(以及我们的许多用户目前正在做的事情)的方式是在与现有1.0.0相同的CodePush应用程序内为1.1.0版本创建新的CodePush部署。在将1.1.0提交到商店之前,部署并更新Info.plist文件以指向新的部署密钥。
这样,您可以向1.0.0用户和1.1.0用户发布更新。如果要向两者发布相同的更新,则必须运行release命令两次,但如果您的更新仅针对一个,则只需将其发布到相应的部署。
此解决方案适用于人们,并且具有"效益"关于如何并行管理多个二进制版本非常明确,但它显然也是一种黑客攻击,并且比应该更加冗长/笨重。
我们将在下个月精简这一体验,并且我很乐意收到您对我们如何最好地适应您的方案的反馈。如果您有任何其他问题/等(joncart@microsoft.com),请随时给我发电子邮件。
谢谢!