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

我了解理想情况的部署模型,所有用户总是将他们的应用更新到最新的应用商店版本.但实际上他们没有.如何使用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.0.0部署相同的CodePush应用程序内为1.1.0版本创建新的CodePush部署,以及在将1.1.0提交到商店之前,请更新Info.plist文件以指向新的部署密钥.

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

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

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

谢谢!

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...