使用Jenkins找不到xcode配置文件

时间:2011-08-30 13:24:30

标签: ios xcode hudson jenkins

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

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的方法。必须有其他人解决了这一点 - 任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

我有类似的东西,但也许有点不同。我可以从命令行运行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”,但这就是它的作用......

答案 2 :(得分:0)

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

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