[不重复类似的问题,如下文进一步解释]
从 Jenkins 中运行 XCodeBuild 时出现代码签名错误,但它可以从命令行或 Xcode 中构建正常。
过去有几个人遇到过这个问题,他们的共同主题是 Jenkins 在启动时作为守护程序用户运行,从而尝试访问系统钥匙串。
人们应用的解决方案是将凭据复制到系统钥匙串或运行命令来设置要使用的钥匙串。
然而,就我而言,如果我在活动管理器中查看 launchd,该用户将显示为我登录到计算机的用户,因此 Jenkins 应该作为该用户运行,而不是作为守护程序用户运行。
我尝试在运行 XCodeBuild 之前将此命令添加到 Jenkins 脚本中来设置要使用的钥匙串
security list-keychains -s /Users/[user]/Library/Keychains/login.keychain
但这并没有解决问题。
我收到的错误是:
Code Sign error: The identity 'iPhone Developer: NNNNN (9TYX5WAM63)' doesn't match any valid, non-expired certificate/private key pair in your keychains"
因此,我尝试将凭据移至系统钥匙串,但现在在 Jenkins 中出现此错误,但从命令行仍然可以正常运行:
Code Sign error: Provisioning profile 'F152C66E-B99A-47F6-B262-376CE4403D71' can't be found
此外,当我将凭据移至系统钥匙串时,我无法再从 XCOde 内进行构建 - 我收到与上面的顶部错误消息相同的错误。
我还尝试编辑 org.jenkins-ci.plist 文件以将用户设置为我登录计算机的用户,根据此,但这也没有效果。
使用 Jenkins/Hudson 作为 iOS 和 Mac 开发的持续集成时,钥匙串中缺少证书和密钥 https://stackoverflow.com/questions/6827874/missing-certificates-and-keys-in-the-keychain-while-using-jenkins-hudson-as-cont/9482707#9482707
有什么想法我接下来可以尝试吗?