在Jenkins中找不到xcode配置文件



我已经通过ant成功运行了xcodebuild。如果我ssh到系统并运行构建,它就能正常工作。但是,当通过Jenkins调用相同的ant目标时(在mac上作为从属运行),它会使用经典的

命令失败。
Code Sign error: a valid provisioning profile matching the application's Identifier 'xxx.xxx.xxx' could not be found" 

在试图让它工作时,我尝试通过'sudo ant'调用来运行它,当然,这会导致相同的错误。本地用户和根用户都回显相同的$PATH,所以这不是问题。我看不出有什么办法可以改变环境或者改变Jenkins调用的用户。一定有其他人已经解决了这个问题-任何帮助都会很感激。

我遇到了这样的东西-不知道这是不是同一件事。但是当你启动Jenkins时,你是以用户身份运行还是以root身份运行?我第一次开始使用Jenkins时,首先运行sudo java -jar Jenkins。战争和我得到了相同的码号错误。当我没有'sudo'运行它时,它工作得很好。虽然不能百分百确定原因。也许这与证书只与用户相关联有关?

我有一些类似的东西,但可能有点不同。我可以从命令行运行xcodebuild,它会正确地签署应用程序。然而,在Jenkins中,我会得到一个错误:

[BEROR]Code Sign error: The identity 'iPhone Distribution' doesn't match any valid certificate/private key pair in the default keychain

它工作得很好,但是有些东西变了(我不确定是什么),它停止工作。我尝试了十亿件事,但最终通过将Keychain Access中的证书/密钥对复制到'System'钥匙链(它以前只是在登录钥匙链中)来修复。

我正在运行Xcode 4.2,这可能是或可能不是重要的。

编辑:

找到了我的问题的解决方案:将以下内容添加到您的jenkins脚本的顶部:

security list-keychains -s/Users/[user]/Library/Keychains/login.keychain

"-s"选择要用于此shell的keychain。让人困惑的是,security命令的参数是"list-keychains",但这就是它的作用…

作为一种解决方案,您可以在运行xcode之前在命令行上导入证书:

security import Cert.p12 -P password -k ~/Library/Keychains/login.keychain -A -T /usr/bin/codesign

最新更新