我们将把新版本的应用程序上传到iOS App Store。
对于以前的版本,CFBundleShortVersionString 是"1.9.2",CFBundleVersion 是"1.92.0"。对于当前版本,我们将使用 CFBundleShortVersionString:"1.10" 和 CFBundleVersion:"1.100.0"。
但我们担心App Store不会将我们的1.10版本检测为新版本。它不会被识别为比CFBundleVersion:"1.92.0"的先前版本旧吗?
换句话说,CFBundleVersion:"1.100.0"是否将高于CFBundleVersion:"1.92.0"?
有谁知道苹果如何比较上传版本的CFBundleVersion参数?
谢谢你的回答。
是的,1.100.0> 1.92.0。Apple 使用语义版本控制。
从左到右,只要没有一个数字小于新数字,你就好了。
对于您的示例,检查类似于(伪):
var oldVersionSems = "1.92.0".split(".")
var newVersionSems = "1.100.0".split(".")
var maxIndex = MIN(oldVersionSems.length, newVersionSems.length)
var isNewer = false
for (int i = 0; i < maxIndex, i++) {
isNewer = newVersionSems[i] > oldVersionSems[i].toInt()
if (isNewer) break
}
语义版本控制如何工作的一个很好的资源是 http://semver.org
例子:
- 2.0.0> 1.100.0
- 1.20.0 <1.100.0
- 1.1.0> 1.0.500
- 1.92.0 <1.100.0