我了解理想情况下的部署模型,即所有用户都应始终将其应用程序更新为最新的应用程序商店版本。但实际上他们没有。如何使用CodePush处理 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.0.0部署相同的CodePush应用中,为您的1.1.0版本创建一个新的CodePush部署,并在将1.1.0提交到存储之前,更新Info.plist文件以指向新的部署 key 。

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

该解决方案对人们来说效果很好,并且具有“明确的好处”,即非常明确地表明您希望如何并行管理多个二进制版本,但是显然,它也有点脚,比它应该的更冗长/笨拙是。

我们将在下个月简化这种体验,我很想获得您关于如何最好地适应您的情况的反馈。如果您有任何其他疑问,请随时直接给我发送电子邮件([email protected])。

谢谢!

关于ios - CodePush : How to deploy to multiple build versions of the same deployment config?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34869548/

10-10 03:58