您可能知道也可能不知道,新的签名证书现在是使用新的中间证书生成的。您可以在这里阅读:
https://developer.apple.com/support/wwdr-intermediate-certificate/
对于连接到互联网的Mac,Xcode将自动下载新的中间证书。但是,我们的构建节点没有连接到互联网,所以我们无法自动获取证书。
我正在努力寻找有关如何手动执行此操作(或如果可能的话使用 Ansible 自动执行此操作)的任何文档。
您可以从这里下载证书:https://www.apple.com/certificateauthority/
直接链接:https://www.apple.com/certificateauthority/AppleWWDRCAG3.cer
然后你可以使用以下命令安装它:
security add-trusted-cert -d -r unspecified -k ~/Library/Keychains/login.keychain-db ~/Downloads/AppleWWDRCAG3.cer
编辑:发现它应该添加到登录钥匙串而不是系统钥匙串中。此外,信任设置也很重要。它应该是未指定的,因为如果它是可信的,代码签名会认为它是自签名证书并失败。
对我来说,将其安装到我们的 CI 服务器中时,我使用了以下命令:
sudo security import AppleWWDRCAG3.cer -k /Library/Keychains/System.keychain -t cert
这就是它的安装方式,当从命令行运行我们的
xcodebuid
命令时,它被完全识别并且不被视为自签名。