【问题标题】:Xcode codesign exit code 1 in Jenkins buildJenkins 构建中的 Xcode 协同设计退出代码 1
【发布时间】:2016-04-14 03:02:31
【问题描述】:

我的环境是:

OSX 10.11 El Capitan
Unity3D 5.3.4f1
Xcode 7.3
Jenkins 1.642.4

Unity3D 构建过程生成的Xcode 项目文件。

我将 Developer & Team 证书导入到 jenkins 用户的 login.keychain

/Users/Share/Jenkins/Library/Keychains/login.keychain

同时将所有配置文件复制到

/Users/Share/Jenkins/Library/MobileDevice/Provisioning Profiles

构建运行良好。然后运行

/usr/bin/codesign return exit code 1

我尝试了很多方法来解决这个问题。
但还没有工作。

我以 jenkins 用户身份登录。
并尝试构建 xcode 项目
协同设计构建成功。

我不知道解决这个问题。
谁能帮我解决这个问题?

谢谢

更新 1:

sudo su - jenkins

xcodebuildcodesign 上也失败了。

更新 2:

截图
构建为sudo su - jenkins
Change user to jenkins to build

Logged in as jenkins to build

Jenkins Web 控制台输出
只允许 2 个链接,所以这里是地址 i.stack.imgur.com/dYFOW.png

更新 3:

也许代码设计问题可能是通过 ssh 远程构建执行代码设计。
有没有办法解决这个问题?

更新 4:

我试过 ssh。
安全解锁钥匙串后。
已经过去了。

更新 5:

直接run /usr/bin/codesign --force --sign ...通过
但是执行xcodebuild 在协同设计上仍然失败...

更新 6:

security set-keychain-settings -t 3600 -l ~/Library/Keychains/login.keychain

我将此添加到构建步骤。它是在 jenkins 上构建的。
所以问题可能是 TIMEOUT

天啊……我被困了两天……
谢谢大家。
祝你有美好的一天

【问题讨论】:

  • 你是在命令行上使用security unlock keychain解锁钥匙串吗?
  • 是的,但是 jenkins 总是构建失败。
  • 您是否尝试过以jenkins 登录并使用Xcode(不是xcodebuild)来构建生成的Xcode 项目? Unity 生成的 Xcode 项目不会设置正确的开发人员 ID/配置文件,除非您在生成和构建之间对其进行了编辑(实际上,配置文件可能不是这样,因为它可以根据捆绑 ID 获得正确的配置文件,其中由 Unity 正确设置)。
  • OSX jenkins 登录并打开终端运行 xcodebuild 通过。这就是我认为詹金斯应该通过的。但是没有。谢谢。

标签: ios xcode unity3d jenkins codesign


【解决方案1】:

1。进入 Xcode -> Preferences -> Accounts -> 选择您的帐户,然后 View Details -> 刷新配置文件。如果 refresh 按钮缺失,请点击 Download All 按钮,然后 restart XCode。

编辑:

看了你贴的图片后,我注意到你贴的错误之前有一个错误。它显示“不允许用户交互”。所以试试下面的。

2。 KeyChain 可能被锁定: 钥匙串访问 -> 钥匙串急救 -> 修复

或通过代码执行: https://stackoverflow.com/a/21327591/3785314

3。构建时可能是超时问题。试试

security set-keychain-settings -t 3600 -l ~/Library/Keychains/login.keychain

4。通过 GUI 登录您的构建用户并打开 Keychain Access。选择您的签名私钥,右键单击,选择获取信息,切换到访问控制选项卡并选择“允许所有应用程序访问此项目”。

"User interaction is not allowed" trying to sign an OSX app using codesign

【讨论】:

  • 谢谢,但我以詹金斯用户登录成功。所以我认为不是这个问题。
  • 我不知道詹金斯是什么。使用 xcode 打开您的项目并执行我的答案中的操作,然后重新启动它,然后再次关闭它。它将更新项目中的证书。现在再次尝试使用 jenkins 构建命令...
  • 完成。但还是失败了。谢谢你的回答。
  • 我更新了我的答案。如果这不起作用,那么我无能为力。
  • 我已经允许所有应用程序访问。终端构建成功。但是詹金斯失败了。再次感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-24
  • 2013-05-09
  • 1970-01-01
  • 2016-02-27
  • 1970-01-01
  • 2016-03-03
  • 2014-12-03
相关资源
最近更新 更多