ios - 代码推送 : How to deploy to multiple build versions of the same deployment config?

标签 ios react-native code-push

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

1) 我一直在使用 CodePush 将新的 js bundel 部署到我的应用程序的 1.0.0 版本中。现在我发布了 1.1.0 并希望通过 CodePush 提供新代码。据我所知,现在可以同时部署到 1.0.0 和 1.1.0,既不是不同的 bundle ,也不是同一个 bundle 。因此,一旦我将 bundle 推送到 1.1.0,就无法更新未通过应用商店更新的 1.0.0 应用。

2) 据我所知,解决此问题的一种方法是仅发布内部版本号 (CFBundleVersion) 增加但版本字符串 (CFBundleShortVersionString) 不变的新版本。但这会产生这样的效果,即使是刚下载的最新应用商店版本(例如 1.1.0(8))也总是会首先在 codepush 上加载最新的包。

有没有一种方法可以干净利落地做到这一点,而无需进行不必要的更新?

最佳答案

我们计划很快优化这个场景,因为正如您提到的,我们意识到这种需求是多么普遍。

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

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

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

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

谢谢!

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

相关文章:

javascript - 如何在 React Native 中更新配置文件(displayName)firebase?

ios - React-native Javascript 通过 codepush 进行的更改未反射(reflect)在 iPhone 上

reactjs - 了解react-native的代码推送

ios - 并行 APNS SSL 证书和 VOIP 服务证书

ios - free() 适用于 iOS 模拟器,但不适用于真实设备

firebase - 在异步函数 React Native 中将所有数据从 Firebase 存储放入数组

react-native - 获取捆绑在全新应用程序安装上的最新代码推送部署

ios - React Native 应用程序未显示在 iOS 的设置中

ios - 如何在 Swift 中让按钮随背景滚动?

android - 找不到 androidx.appcompat :appcompat:1. 0.2