iOS 应用商店bundle版本比较规则



我们将把新版本的应用程序上传到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

最新更新