在 macOS 10.13 beta 上提交你的应用

昨天有小伙伴提到主力机升级到 macOS 10.13 beta 后,会出现无法提交应用的问题。我也赶紧打了个包试一下,在上传完 App Store 后,果然不负众望的收到 Apple 的错误提示邮件:

Invalid Toolchain - New apps and app updates must be built with the public (GM) versions of Xcode 6 or later, macOS, and iOS SDK. Don’t submit apps built with beta software including beta macOS builds.

Excuse me ! 我明明是使用了 Xcode 8.3.3 的正式版打的包,怎么会报错呢?

请再次注意上面 Apple 为你加粗的文字:Invalid Toolchain (无效的工具链)。这里的工具链不仅包括了 Xcode ,也包括了你用来打包的操作系统。

很快就出现了第一个解决方案,修改 /System/Library/CoreServices/SystemVersion.plist 路径下的 ProductBuildVersion 为一个正式版的版本号即可。但是很快你就会发现,在 macOS 10.11 以后加入的 SIP (System Integrity Protection) 阻止了你。还记得刚用 El Capitan 时遇到的 Homebrew 与 Cocoapods 的一连串问题么?

事实上这是完全可以绕过去的,参考 stackoverflow 直接修改打包后的 YourApp.xcarchive/Products/Applications/YourApp.app/Info.plist 中的 BuildMachineOSBuild 为正式的 macOS 版本号,然后再上传提交就不会有任何问题。

至于可用的正式版 macOS 操作系统的版本号,直接到 Apple Developer Downloads 中,查看 Release Software 的 Build 号即可。