CFBundleVersion必须是以句点分隔的列表

时间:2015-10-22 21:05:24

标签: ios xcode swift itunesconnect

我将构建上传到itunes connect时遇到了问题。我总是得到以下错误

enter image description here

我的常规项目设置如下所示

enter image description here

我也在我的项目中使用cocoapods,但之前从未收到此错误,我已经上传了几个版本。我不知道那个奇怪的数字[1443188838-89]来自哪里。

同样在信息标签上,捆绑版本对我来说很好看

enter image description here

与info.plist一样,源代码看起来不错

enter image description here

非常感谢任何帮助。

4 个答案:

答案 0 :(得分:3)

好的,所以在花了很多时间在这个问题上后我终于可以解决了。

如果您的Info.plist文件中有错误的CFBundleVersion号码,请检查全部。浏览所有Cocoapods 静态框架及其捆绑包(右键单击 - 显示包内容)。在我的例子中,它是Netverify(Jumio)框架和包中的一个不正确的CFBundleVersion密钥。 (与错误消息中显示的相同)。

我刚刚将其更改为1.0.0之类的有效密钥,现在可以正常使用了!

答案 1 :(得分:3)

你是对的,问题是非数字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

答案 2 :(得分:0)

我也遇到过这个问题,即使已经上传并发布到TestFlight内部测试的构建版本也是如此。它不允许我释放给外部测试人员,因为版本字符串必须是由句点分隔的三个数字。

我正在使用Cocoapods构建框架与Swift并在我的项目中进行搜索,发现RxSwift的Info.plist的版本字符串设置为' 2.0.0-alpha'。值得庆幸的是,我没有开始大量使用它,所以我能够删除pod并成功提交没有问题。您应该能够修改有问题的pod的版本字符串以使您的提交能够完成(尽管这显然不是理想的)。

我不知道这是Apple的服务或新政策中的错误,但无论哪种方式都很痛苦。

答案 3 :(得分:0)

我的解决方案是在Podfile中更新pod SVWebViewController:

pod SVWebViewController, :HEAD

//Info.plist
<key>CFBundleShortVersionString</key>
<string>HEAD 1.0</string>

pod SVWebViewController

//Info.plist
<key>CFBundleShortVersionString</key>
<string>1.0</string>

此更新对此特定窗格的Info.plist文件进行了更改。感谢您提示用户1463853。