【问题标题】:iOS App Store bundle version comparison rulesiOS App Store bundle 版本比较规则
【发布时间】:2015-02-08 22:29:24
【问题描述】:

我们将把我们应用的新版本上传到 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" 会不会被识别为比previos 版本旧。

换句话说,是 CFBundleVersion:"1.100.0" 会高于 CFBundleVersion:"1.92.0" 吗?

有人知道 Apple 如何比较上传构建的 CFBundleVersion 参数吗?

感谢您的回答。

【问题讨论】:

    标签: ios app-store uploading


    【解决方案1】:

    是的,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.1.0 > 1.0.500
    • 1.92.0

    【讨论】:

    • 谢谢你,丹。我们将尝试使用“1.100.0”作为新版本。
    • @Sergei 如果你可以接受这个答案,你能接受吗?
    • 当然,我们会尝试上传版本,如果可行,我会接受这个答案。因为最近当我们上传 build with CFBundleVersion:"1.8" above build with CFBundleVersion:"1.7.3" App Store 并没有将 "1.8" 识别为新 build,我们不得不上传新 build with CFBundleVersion:"1.80.1 “来解决这个问题。谢谢。
    • Apple 不承认这是一个新版本,这真的很奇怪。新的内部版本号是否也更新了? Apple 还要求将内部版本号升级,因此请确保您也已升级。
    • 是的,内部版本号也已更新,CFBundleShortVersionString 的值为“1.8”。但无论如何,出于某种原因,Apple 并未将此版本视为新版本。这就是为什么现在我们想知道使用 CFBundleVersion:"1.100.0" 构建是否会比使用 CFBundleVersion:"1.92.0" 构建更高。当我们上传新版本并查看结果时,我会在这里写。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-06
    • 1970-01-01
    • 1970-01-01
    • 2017-05-24
    • 2012-09-23
    相关资源
    最近更新 更多