解决:工具链无效,app必须建立于通用版本(系统beta版本打包app)

一位朋友遇到这样的审核被拒:

Invalid Toolchain. New apps and app updates must be built with the public (GM) versions.

查了一些资料,先说下原因:

打包时候, iTunes Connect会读取这个值,从而知道app是使用OS X预发布版本的建立的,从而拒绝。
将app提交到iTunes Connect时会提示失败,此app不能安装任何设备上,越狱设备除外。

高版本beta我们可以重装OS X来修复这个问题,这个成本太大。找到一个方法,可以不必降级版本,通过改变OS 版本号来解决。

系统版本号保存路径:/System/Library/CoreServices/SystemVersion.plist (这是一个系统文件,Mac OS X 系统默认开启了完整性保护(System Intregrity Protection,SIP),所以即使是root帐户也无法修改系统目录中的文件。)

第一步: 禁用 SIP

1. 终端查看SIP状态,关闭SIP:

csrutil status

状态enable执行下一步,关闭SIP:
重启电脑,按住Command+R(直到出现苹果标志)进入Recovery Mode(恢复模式)
左上角菜单里找到实用工具 -> 终端
输入$ csrutil disable回车
重启Mac即可
如果想重新启动SIP机制重复上述步骤改用$ csrutil enable即可

2. 使用编辑器打开 /System/Library/CoreServices/SystemVersion.plist 

解决:工具链无效,app必须建立于通用版本(系统beta版本打包app)_第1张图片

朋友系统版本为:mac OS Catalina 10.15 Beta (19A546d)

我的系统版本位:mac OS Mojava 10.14.5 (18F132)

编辑ProductBuildVersion值,从 19A546d 版本号替换为 18F132

最后,按 esc 输入 :wq 保存并退出

3. 重启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/

你可能感兴趣的:(工具链无效,禁用SIP,ios错误,ios面试,开发工具)