【问题标题】:Error ITMS-90062: The value for key CFBundleShortVersionString must contain a higher version than that of the previously approved version错误 ITMS-90062:键 CFBundleShortVersionString 的值必须包含比先前批准的版本更高的版本
【发布时间】:2016-01-21 08:22:27
【问题描述】:

我第一次尝试更新我的应用程序并遇到了这个问题。我搜索了很多,但没有一个解决方案适合我。

App Store Connect 操作错误

错误 ITMS-90062:“此捆绑包无效。Info.plist 文件中键 CFBundleShortVersionString [2020.0] 的值必须包含比先前批准的版本 [2020.0] 更高的版本。请查找有关 CFBundleShortVersionString 的更多信息在https://developer.apple.com/documentation/bundleresources/information_property_list/cfbundleshortversionstring"

我的 info.plist 文件是:

常规窗口:

【问题讨论】:

标签: app-store-connect xcode7


【解决方案1】:

TL;DR:如果您的应用版本已获准进入官方应用商店,则无法将具有相同版本的构建上传到 TestFlight。您必须从官方应用商店提交中删除该应用,或增加您的 TestFlight 版本#。

我知道为什么这会发生在我身上。

  • 我在应用商店中有一个 2010 版的应用。

  • 我一直在运行 2020 版的外部 beta 测试,内部版本号在 400-410 范围内

  • 为了了解我的应用程序是否会在我准备在几周内实际发布后在应用商店中被拒绝,我提交了 2020 版本,构建 407 以供官方应用商店审核。我预计它会因各种原因被拒绝。它被批准了!但是,我还没有准备好发布它,因为我还有更多想要实现的修复。所以,我让它坐在那里,等着我用它做点什么。

  • 然后,我想为我的外部测试版上传更新的版本,仍然是版本 2020,版本 410,我收到了这个错误。

  • 感谢user462990的回答,我意识到这个错误可能是由于我目前已经批准了2020版本并等待发布到官方应用商店,所以iTC不允许我提交TestFlight 外部测试版的相同版本号。

所以,我选择了官方认可版本的“取消本次发布”,而Viola!我现在可以上传具有相同构建号的构建。

【讨论】:

  • 在 Xcode 9.2 中:<key>CFBundleShortVersionString</key> <string>n.n.n.</string>,在 Info.plist 中在 UI 中显示为:“Bundle Versions string, short”
【解决方案2】:

我认为这是苹果方面的一些问题。几个小时后它会自动解决。

【讨论】:

  • 谢谢提及。一年后,我了解到该服务泄漏了很多错误,这些错误都消失了。提及具体的例子会有所帮助。对我来说,当你试图赶上最后期限并遇到错误时,你需要尽可能多的相关信息。
【解决方案3】:

对我有用的是将其从 1.0 (.6) 更改为 1.1 (.0) 这并不是真正的新“版本”,而是增量改进和更正。一种想法是,当应用程序被 iTunes 商店接受时,下一次上传必须是更高版本。

【讨论】:

  • 感谢您的回答,这完全让我感到困惑!
【解决方案4】:

上传更新时必须始终增加版本号,因此请将其从 1.0 更改为 1.1

【讨论】:

  • 我有你在 .plist 文件中看到的
  • @Bilal Xcode 的目标 General 窗口中显示什么?
  • @Bilal 好的,我不明白。
  • 更改“版本号”(CFBundleShortVersionString)可能会通过过度杀戮来解决问题,但错误似乎更具体。
【解决方案5】:

我今天遇到了类似的问题。几天前我上传了一个新版本,没有任何问题。我发现有人在这里发布了类似的问题:https://discussions.apple.com/thread/7297092。他们能够通过更改子项目中的 Info.plist 值来解决它,但是,我尝试这样做,但仍然遇到了同样的问题。

我找不到任何关于为什么会发生这种情况或何时开始的信息,但我知道我在 5 天前上传了一个包含所有相同项目的预发布版本到 TestFlight。

我目前增加我的预发布版本:

1.10 (1) -> CFBundleVersionShortString (CFBundleVersion) 1.10 (2) ...

我达到了 1.10 (7),这是我 5 天前部署的。现在,我无法让任何工作 1.10 (8)、1.10 (9)、1.10 (1.10) 等。他们都说“CFBundleShortVersionString [1.0] 必须大于以前批准的版本 [1.3]”

1.3 与商店中可用的先前版本一样正确,但显然 1.0 与 Bundle 版本不同。

【讨论】:

  • 尽管这很有趣且有见地(因此很有用),但它是一个评论,而不是一个答案。我认为您应该简单地补充一下,这是 Apple 提交过程中的一个临时问题,以将其转化为答案。
  • 我发布了答案,但会在这里发表评论。 Apple 不会将版本视为十进制数。他们将其视为由句点分隔的整数。在您的情况下,您以前的版本是 1.10,他们将其解释为主要版本 1,次要版本 10。您的新版本是 1.3,即主要版本 1,次要版本 3。由于现有的次要版本 10 大于 3,它将不符合他们的标准。尝试 1.30 的新版本,或切换到他们的方案并制作您的新版本 1.11(接下来是 1.12 等)。
【解决方案6】:

我在从 1.141 版升级到 1.15 版时遇到了这个问题。 Apple 不会将版本视为十进制数字 - 他们将其视为多个以句点分隔的整数。因此,在我的情况下,Apple 认为 1.141 是主要版本 1,次要版本 141,然后我的新版本是主要版本 1,次要版本 15。由于 141 > 15 它失败了。

两种处理方式:

  1. 使用 Apple 对版本号的解释,因此您始终将次要版本增加 1:1.1, 1.2, ... 1.9, 1.10, 1.11
  2. 如果您希望使用“数百”或“数千”个位置(我会这样做,因为我尝试以精确度对构建范围进行编码 - 我将数千个位置用于小错误修复版本),然后始终填充它们带零:1.10, 1.11, 1.20, 1.30

所以就我而言,我从 1.141 升级到 1.150,并且能够上传。

【讨论】:

    猜你喜欢
    • 2019-01-27
    • 2016-04-27
    • 1970-01-01
    • 2013-10-22
    • 2012-04-13
    • 2018-08-07
    • 2012-04-03
    • 1970-01-01
    相关资源
    最近更新 更多