【问题标题】:CFBundleVersion must be higher than previous versionCFBundleVersion 必须高于以前的版本
【发布时间】:2012-04-03 00:35:32
【问题描述】:

我正在提交对我的一个应用程序的更新。我已经用我开发的许多不同的应用程序做了几十次,但是这个失败了,因为一些奇怪的原因。我存档了我的应用程序,然后尝试验证存档并收到以下错误消息:

此捆绑包无效。 Info.plist 文件中的键 CFBundleVersion 必须 包含比之前上传的版本更高的版本。

iTunesConnect 显示此应用当前为 1.0,我已将其配置为可以上传 1.1 版(应用图标已编辑的屏幕截图):

这是我的应用目标摘要信息的屏幕截图,显示版本和短版本都是“1.1”:

这是来自 Bundle Archive 的 Info.plist 的上半部分:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>AppStoreFileSize</key>
    <integer>20859080</integer>
    <key>ApplicationProperties</key>
    <dict>
        <key>ApplicationPath</key>
        <string>Applications/MyApp.app</string>
        <key>CFBundleIdentifier</key>
        <string>com.mydomain.myapp</string>
        <key>CFBundleShortVersionString</key>
        <string>1.1</string>

这是存档包中应用程序内的相关 Info.plist 部分:

<key>CFBundleShortVersionString</key>
<string>1.1</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleSupportedPlatforms</key>
<array>
    <string>iPhoneOS</string>
</array>
<key>CFBundleVersion</key>
<string>1.1</string>

我更新的应用程序中的所有版本号都显示为 1.1,iTunesConnect 说它期待 1.1...但它抱怨数字错误。

我错过了什么?

【问题讨论】:

  • 您是通过组织者提交,还是通过应用程序加载器提交?
  • 您说您正在显示 Info.plist(和 Bundle Archive)的“相关”部分,但 Validate 抱怨的密钥(CFBundleVersion)未显示在任何一个 sn 中-ps 你已经发布了。所以要么它丢失了(这就是问题所在),要么你只是发布了错误的代码部分。此键对应于 iOS 应用程序目标设置的 Build 字段,而不是您可能期望的 Version
  • CFBundleVersion 是我发布的最后一个 Info.plist 中的最后一个键(这是应用程序本身的那个)。
  • 在尝试通过 Organizer 提交给 Apple 之前,不要忘记您需要存档新版本!我花了一点时间尝试提交旧版本的存档。 -________-
  • 我刚刚收到一封包含此错误的电子邮件,结果发现我的一个旧版本在过去一周被困在 ITC 中作为“处理”,终于得到了处理。当它第一次卡住时,我重新提交了另一个版本号增加的版本,所以当旧版本最终得到处理时,它触发了错误。

标签: ios xcode app-store-connect


【解决方案1】:

对我来说,问题的发生仅仅是因为之前的版本已经被 Apple 审查过,但我没有发布它。在我拒绝旧版本后,我能够上传新版本。版本号很好。 所以是的...在上传新版本之前检查您的 App Store Connect

【讨论】:

    【解决方案2】:

    我的问题是我尝试从 1.9.12 到 1.9.2...如果你考虑一下 1.9.2 它实际上是 1.9.02,所以如果你设置 1.9.20 那会解决问题。

    【讨论】:

      【解决方案3】:

      其中一个原因可能是下一种情况: 您发送到 AppStore 版本 1.0,内部版本号为 50。 您决定将其提供给 TestFlight 用户进行测试。同时决定将此版本发送到 AppStore 进行审核。用户开始测试它,一切都很好。一段时间后,AppStore 批准了它,但它没有发布(它有开发者 peinding 状态)。在您进行了一些更改并希望为您的 Testflight 用户提供新版本之后。您决定将内部版本号增加到 51 并将版本号保持在 1.0。在这种情况下,您将收到您在问题中描述的错误。您也必须增加应用程序版本。

      【讨论】:

        【解决方案4】:

        如果以上答案不能解决您的问题,请确保 Xcode 中的版本必须与您在 Itunes connect 中创建的版本相同。

        在我的情况下,在 iTunes Connect 上,版本是 1.38,但在 Xcode 中版本是 1.3.8。 一旦我在 Xcode 中将版本更改为 1.38,问题就解决了。

        【讨论】:

          【解决方案5】:

          这完全可能是由另一个原因造成的。

          我正在运行一个有效的 TestFlight 测试版。 Build 2020,版本 407

          我提交了一个应用程序供官方 App Store 审核。 Build 2020,版本 435,并获得批准。它就在那里,等着我把它实时推送到 App Store。

          在不添加复杂的支线故事的情况下,我想做的是给我的 TestFlight 测试版用户一个更新版本,以便在 App Store 版本上线之前预览几天的官方 App Store 版本。你为什么问?因为他们获得了免费功能,所以一旦应用上线,他们就要花钱了。

          所以,我向 TestFlight 提交了 Build 2020 版本 436,但被拒绝了。

          它被拒绝了,因为我有一个经过批准的官方 App-Store 候选版本,具有相同的内部版本号

          解决方案:更改您的 TestFlight 版本的内部版本号。我向 TestFlight 提交了 Build 20200(我添加了一个额外的零)版本 436,并获得了批准。别担心,只要您仍然使用相同的 BundleID,您仍然可以将此构建推送到同一个 TestFlight beta 组。

          【讨论】:

            【解决方案6】:

            这是我解决问题的方法(我猜这是很多人的问题):

            1) 单击项目设置的常规选项卡(可以通过单击所有代码文件顶部的项目名称来访问)。

            2) 确保构建字段与您在 plist 中为“Bundle Version”键输入的内容相匹配。

            这对我来说是个问题,无论出于何种原因,它们都不同步。我认为当您更改 Bundler Version 密钥时,它应该同步(反之亦然)。但无论出于何种原因,它都没有发生 - 可能是一个错误。

            【讨论】:

              【解决方案7】:

              增加 CFBundleShortVersionString 或“捆绑版本字符串,短”为我完成了这项工作。

              【讨论】:

                【解决方案8】:

                仅供参考。 Apple 认为 1.11 > 1.2,所以如果你要从 1.11 升级到 1.2,你需要一路升级到 1.20。

                享受吧。

                【讨论】:

                • 这是因为 Apple 按点分割并逐个组件进行比较。这在历史上是一致的,这意味着“1.11”通常在 Apple 平台上表示为“1.1.1”。
                • @Jonathan 但是 1.11 不高于 1.2 !所以你会说 1.1.1 高于 1.2.0。
                • @Viktor:1.11 高于 1.2。 这些不是数学数字。每个组件都是单独比较的,所以1 == 111 &gt; 2
                • Apple 在历史上与版本控制 1.23(不是 1.2.3)一致。 Apple 通常将 1.1.1 表示为内部 1.11,反之亦然! 1.1 在 Apple 平台上表示为 1.10,如果您曾经在点后面使用 2 个数字。如果你曾经使用过 3 个数字,你必须写 1.100 等等......
                • 这类似于NSNumericSearch
                【解决方案9】:

                同样的事情发生在我身上。我当前的 App Store 版本是 2.03。我尝试上传 2.1。我所要做的就是将其更改为 2.10 并且它起作用了。

                【讨论】:

                • 发生这种情况是因为忽略了前导零,因此您当前的版本实际上被解析为 2.3
                【解决方案10】:

                原来我在原始提交中遇到了一些问题,导致用户可见版本为“1.0”,但内部捆绑版本为“1.2”。所以我将我的新版本更改为 1.3 和 1.3 并且提交工作。

                【讨论】:

                • 我快疯了,因为 1.09 似乎比 Apple 的 1.3 大。谢谢你的截图。
                • +1 很棒且简单的解释,我遇到了同样的问题,花了几个小时试图解决它,非常感谢
                猜你喜欢
                • 2012-04-13
                • 2013-10-22
                • 2023-03-16
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2016-01-21
                • 2019-01-27
                相关资源
                最近更新 更多