【问题标题】:Is it correct that different versions of a submitted app are compared using CFBundleVersion使用 CFBundleVersion 比较提交的应用程序的不同版本是否正确
【发布时间】:2014-01-27 02:22:32
【问题描述】:

根据此处接受的答案的要点 3: CFBundleVersion in the Info.plist Upload Error

Apple 应该比较“CFBundleVersion”(即“Bundle 版本”而不是“捆绑版本字符串,短”)

但是在这篇文章中: Difference between Xcode version (CFBundleShortVersionString) and build (CFBundleVersion)

它说版本映射到CFBundleShortVersionString,构建映射到CFBundleVersion

因此,这意味着当您向应用商店提交应用的新版本时,比较是针对构建进行的,而不是针对您在 XCode 摘要页面中看到的版本。

这对我来说似乎是错误的方式 - 特别是考虑到 Apple 文档中的引用:

CFBundleShortVersionString 代表发布版本,而 CFBundleVersion 代表任何构建,无论是否发布。

这意味着在提交应用程序的新版本时,您需要关注内部版本号,而不是发布号,这在我看来很奇怪。它更奇怪,因为根据这个: What's the difference between "version number" in itunes connect, "bundle version", "bundle version string" in xcode?

CFBundleShortVersionString 必须与 iTunesConnect 中的相同。那为什么 Apple 会检查 CFBundleVersion 而不是 CFBundleVersionShortVersionString?

我已经提交了一个版本和构建都是 1.0 的应用,现在我想提交一个新版本,并且已经将两者都撞到了 1.0.1,这会在提交时导致任何问题吗?

【问题讨论】:

    标签: ios xcode app-store


    【解决方案1】:

    用户的报告似乎不一致。此外,SO 的答案已经超过 2 年了。

    Apple 的 App Distribution Guide 中关于“配置您的应用程序”的部分是这样说的:

    设置版本号和构建字符串

    版本号是由两个句点分隔的正整数列表,如 4.5.2 中所示。首先 整数代表主要修订,第二个是次要修订,并且 第三个维护版本。版本号显示在 store 并且该版本应与您稍后输入的版本号匹配 在 iTunes 连接中。有关可能值的详细信息,请参阅 信息属性列表键中的“CFBundleShortVersionString” 参考。

    构建字符串表示一个迭代(已发布或未发布) 捆绑包,可以包含字符和数字的混合,如 12E123。对于 Mac 应用程序,用户可以单击 关于窗口在版本号和构建之间切换 细绳。有关可能值的详细信息,请参阅中的“CFBundleVersion” 信息属性列表键参考。

    对于 iOS 应用程序,每当您分发一个新的 构建您的应用程序以进行测试。 iTunes 将识别出构建 字符串已更改并将新的 iOS App Store 包正确同步到 设备。有关如何配置您的应用程序进行测试,请阅读“Beta 测试 您的 iOS 应用。”

    这表明对于 App Store 来说重要的是 CFBundleShortVersionString,它应该与 iTunes 连接中的值匹配。在区分用于测试的构建时,会考虑对 CFBundleVersion 的更改。

    然而,这在某种程度上与“Information Property List Key Reference”关于 CFBundleVersion 的说法相矛盾

    CFBundleVersion (String - iOS, OS X) 指定构建版本 包的编号,它标识一个迭代(已发布或 未发布)的捆绑包。构建版本号应该是一个字符串 由三个非负的、以句点分隔的整数组成,其中 第一个整数大于零。字符串应该只包含 数字 (0-9) 和句点 (.) 字符。前导零被截断 从每个整数中,将被忽略(即 1.02.3 是等价的 至 1.2.3)。此键不可本地化。

    这不是 Apple 的文档第一次或最后一次出现相互矛盾的信息。

    就个人而言,我会遵循应用分发指南指南,但为两个值设置相同的版本号似乎符合两个文档,所以你应该没问题。

    对于我的 Mac OSX 应用程序,我在 CFBundleShortVersionString 中使用点分版本,在 CFBundleVersion 中使用运行整数(对应于我的 SCM 修订号)。多年来提交这样的更新,从未遇到过问题

    【讨论】:

      猜你喜欢
      • 2012-09-21
      • 2022-10-19
      • 1970-01-01
      • 2016-05-11
      • 2020-07-17
      • 1970-01-01
      • 2014-12-04
      • 2017-10-28
      • 1970-01-01
      相关资源
      最近更新 更多