使用Jenkins找不到xcode配置文件

我通过ant成功运行了xcodebuild。 如果我进入系统并运行构建,它可以正常工作。 然而,当通过Jenkins(在mac上作为奴隶运行)调用相同的ant目标时,它会失败并带有经典

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

在尝试让它工作时,我尝试通过’sudo ant’调用运行它,当然,这会导致同样的错误。 本地用户和root都回显相同的$ PATH,所以这不是问题。 我没有看到改变环境或改变用户Jenkins调用ant的方法。 必须有其他人解决了这一点 – 任何帮助将不胜感激。

我碰到了这样的事情 – 不知道是不是同样的事情。 但是当你启动Jenkins时,你是以用户身份运行还是以root身份运行? 我第一次开始使用Jenkins时,我通过运行sudo java -jar jenkins.war来解决这个问题,而且我遇到了相同的Code Sign错误。 当我在没有’sudo’的情况下运行它时它工作得很好。 但不是100%肯定为什么。 也许它与仅与用户关联的证书有关?

我有类似的东西,但也许有点不同。 我可以从命令行运行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中的证书/密钥对复制到“系统”钥匙串(之前只是登录钥匙串)来解决。

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

编辑:

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

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

“-s”选择要用于此shell的钥匙串。 混淆安全命令的参数是“list-keychains”,但这就是它的作用……

作为解决方法,您可以在运行xcode之前在命令行上导入cert:

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