【问题标题】:CodePush: How to deploy to multiple build versions of the same deployment config?CodePush:如何部署到同一部署配置的多个构建版本?
【发布时间】:2016-01-19 06:02:09
【问题描述】:

我了解理想情况下的部署模型,即所有用户始终将他们的应用更新到最新的应用商店版本。但实际上他们没有。如何使用 CodePush 处理不同构建版本的 react-native 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 上加载最新的包。

有没有办法干净利落地做到这一点并且没有不必要的更新?

【问题讨论】:

  • 我想用#codepush 标记它,但我不允许这样做。也许管理员可以做到?谢谢。

标签: ios react-native code-push


【解决方案1】:

我们计划很快优化此方案,因为正如您所提到的,我们意识到它的需求是多么普遍。

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

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

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

我们将在下个月简化这种体验,我很想得到您的反馈,了解我们如何最好地适应您的场景。如果您有任何其他问题/等,请随时直接给我发送电子邮件 (joncart@microsoft.com)。

谢谢!

【讨论】:

  • 非常感谢您的快速回复。我这也是我打算做的。如果您想支持这种情况,我建议您只跟踪部署下的每个构建版本,而不仅仅是使用最新版本。因此,您可以推送到 1.0.0 和 1.1.0 并让它们都由同一个部署提供服务。然后您可以一次添加推送到多个版本并在版本之间进行升级。基本上版本将是自动生成的子部署。
猜你喜欢
  • 2015-08-22
  • 1970-01-01
  • 2017-11-06
  • 1970-01-01
  • 2014-10-20
  • 2011-06-04
  • 2012-11-04
  • 2021-06-30
  • 1970-01-01
相关资源
最近更新 更多