【问题标题】:CFBundleVersion must be a period separated list of at most three non-negative integers (WARNING ITMS-9000)CFBundleVersion 必须是最多三个非负整数的句点分隔列表(警告 ITMS-9000)
【发布时间】:2014-10-14 15:24:38
【问题描述】:

我在尝试提交我的应用时收到此警告:

警告 ITMS-9000:“此捆绑包无效。键的值 CFBundleVersion [3.3.9.2014.08.20] int info.plist 文件必须是 最多三个非负整数的句点分隔列表。"

这是我在提交大量使用该版本控制格式的文件后第一次看到这种情况。

CFBundleVersion 有什么变化吗?

我猜三个并不总是在那里?还是苹果刚刚开始警告我们?

来自Apple docs

CFBundleVersion

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

编辑:

如您所见here,显然 CFBundleVersion 已更改。 很遗憾,我需要在 WayBackMachine 中搜索类似的内容,而 Apple 的“文档修订历史”对此只字未提。

【问题讨论】:

  • 这个错误过去肯定存在过:google.com/…,但为什么它现在又回来了肯定是个谜。
  • 你是对的,谢谢。现在它是一个警告。我希望提交不会因此而被拒绝。
  • 本次提交有进展吗?我也收到了同样的警告(对于 1.0.4.3435),即使我过去使用过这种格式而没有任何警告...
  • 仍在等待审核。我会报告任何更新。
  • 我也是。落入相同的警告(对于 1.1.826.1)。自 3 年以来,我们提交的应用程序的版本编号政策为 [Major].[Minor].[BuildNumber].[Revision]

标签: ios xcode build app-store-connect


【解决方案1】:

我遇到了同样的问题-

块引用

错误 ITMS-90058:“此捆绑包无效。Info.plist 文件中键 CFBundleVersion [ms-08-23] 的值必须是最多三个非负整数的句点分隔列表。”

块引用

在我去搜索每个第三方框架 Plist 和 SAP 库之后,我发现 Bundle version[ms-08-23] 。 我将其更改为三个非负整数 ie 3.0.0 的格式,我在 SAP 的每个框架中都对其进行了更改 - IT Worked em>

【讨论】:

    【解决方案2】:

    如果您使用 CocoaPods,请将此脚本添加到 Podfile 以处理非数字捆绑版本:

    # fix for non numeric CocoaPods versions
    # https://github.com/CocoaPods/CocoaPods/issues/4421#issuecomment-151804311
    post_install do |installer|
      plist_buddy = "/usr/libexec/PlistBuddy"
      installer.pods_project.targets.each do |target|
        plist = "Pods/Target Support Files/#{target}/Info.plist"
        original_version = `#{plist_buddy} -c "Print CFBundleShortVersionString" "#{plist}"`.strip
        changed_version = original_version[/(\d+\.){1,2}(\d+)?/]
        unless original_version == changed_version
          puts "Fix version of Pod #{target}: #{original_version} => #{changed_version}"
          `#{plist_buddy} -c "Set CFBundleShortVersionString #{changed_version}" "Pods/Target Support Files/#{target}/Info.plist"`
        end
      end
    end
    

    ReactiveCocoa 4 的示例输出:

    Installing ReactiveCocoa (4.0.4-alpha-1)
    (...)
    Fix version of Pod ReactiveCocoa: 4.0.4-alpha-1 => 4.0.4
    

    【讨论】:

      【解决方案3】:

      按照错误,然后按照 CFBundleVersion 搜索,在您的情况下搜索:3.3.9.2014.08.20 然后将其更改为正确的版本,如 3.3.9 或 3.4.0,...(它必须大于旧版本)

      【讨论】:

        【解决方案4】:

        如您所见here,显然 CFBundleVersion 已更改。 很遗憾,我需要在 WayBackMachine 中搜索类似的内容,而 Apple 的“文档修订历史”对此只字未提。

        【讨论】:

          【解决方案5】:

          这发生在我在 Cocoapods 中使用的一个框架上,这是我修复它的方法:

          您需要在 info.plist 文件中找到非标准的 CFBundleShortVersionString。我搜索了所有这些,并在其中一个存储库中找到了这个:

            <key>CFBundleShortVersionString</key>
            <string>HEAD based on 1.0</string>
          

          改成这样:

            <key>CFBundleShortVersionString</key>
            <string>1.0</string>
          

          成功了

          这个由 Cocoapods 开发者创建的方法也有效:

          https://github.com/Jonge/Cocoapods-frameworks-version-number-fix

          【讨论】:

          • 发现了同样的问题。一定要检查你的 cocoapods!
          • 手动更改似乎并不方便。我建议使用下面发布的脚本。
          【解决方案6】:

          Apple 似乎更进一步,并使其成为错误(不确定这是什么时候发生的,但我使用的是 Xcode 6)。尝试提交带有超过 2 个小数点的 CFBundleShortVersionString 的应用程序将导致归档文件提交到 iTunes Connect 现在失败。

          您现在必须拥有CFBundleShortVersionString(例如1.04.5.2 等)才能成功提交您的申请。可能有点烦人,但我想这是有道理的。

          【讨论】:

          • 使用 XCode 8.2 Organizer 我只使用两个数字和一个点 (1.0) 时遇到问题。主办方告诉我一些签约问题。当我将版本更改为 1.0.0 时问题就解决了 ...
          【解决方案7】:

          推荐的最佳做法是现在为 CFBundleShortVersionStringCFBundleVersion 使用单独的值

          • CFBundleShortVersionString 最多 3 个组件(例如:4.2.3)
          • 内部版本号CFBundleVersion

          CFBundleShortVersionString 是 App Store 上显示的版本。 CFBundleVersion 需要针对您上传的每个构建进行更改。

          例如:如果您在 iTunesConnect 上上传新版本 (4.2.3) 以供审核,并且被拒绝。您需要重新提交具有不同 CFBundleVersion 值的相同版本号 (CFBundleShortVersionString = 4.2.3) 的新版本

          【讨论】:

            猜你喜欢
            • 2016-01-22
            • 2014-11-05
            • 1970-01-01
            • 2014-05-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-11-20
            • 1970-01-01
            相关资源
            最近更新 更多