今天提交一个App 到 iTunes Connect。App在Xcode 7以及Mac OS X EL Capitan 10.11.1 beta下编译html
出现一个错误消息以下:ios
- Invalid Toolchain. New apps and app updates must be built with the public (GM) versions of Xcode 6 or later,
- and iOS 8 SDK or later. Don‘t submit apps built with beta software.
中文版错误消息:api
- 工具链无效。新 App 和 App 更新必须使用公共(正式)版 Xcode 6 或更高版本以及 iOS 8 SDK 或更高版原本构建。
- 请勿提交 Beta 版软件构建的 App。
应用程序的创建由兼容的Xcode版本、合适的iOS SDK版本以及Mac OS 版本有关。xcode
- <key>ProductBuildVersion</key>
- <string>15A279b</string>
正是这个版本号的缘由, iTunes Connect会读取这个值,从而知道app是使用OS X预发布版本的创建的,从而拒绝。app
将app提交到iTunes Connect时会提示失败,此app不能安装任何设备上,越狱设备除外。编辑器
咱们能够重装OS X来修复这个问题,这个成本太大。幸运的是,找到一个方法,能够没必要降到OS X 10.10 Yosemite,ide
经过改变OS 版本号来解决。工具
提示:该解决方案要求您禁用系统完整性保护,以对系统文件进行修改oop
一、使用编辑器打开 /System/Library/CoreServices/SystemVersion.plist
ui
- <?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>ProductBuildVersion</key>
- <string>15A279b</string>
- <key>ProductCopyright</key>
- <string>1983-2015 Apple Inc.</string>
- <key>ProductName</key>
- <string>Mac OS X</string>
- <key>ProductUserVisibleVersion</key>
- <string>10.11</string>
- <key>ProductVersion</key>
- <string>10.11</string>
- </dict>
- </plist>
二、编辑ProductBuildVersion值,从旧的OS X版本号15A279b替换为14C109版本(Yosemite 10.10.2)
- <?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>ProductBuildVersion</key>
- <string>14C109</string>
- <key>ProductCopyright</key>
- <string>1983-2015 Apple Inc.</string>
- <key>ProductName</key>
- <string>Mac OS X</string>
- <key>ProductUserVisibleVersion</key>
- <string>10.11</string>
- <key>ProductVersion</key>
- <string>10.11</string>
- </dict>
- </plist>
三、重启Xcode,从新archive您的app并正常的提交到您的App Store,此次应该能经过 iTunes Connect的审查
参考资料:https://georgegarside.com/blog/ios/submit-apps-built-beta-xcode/
https://georgegarside.com/blog/osx/package-incompatible-installer/