我试图从Jenkins构建一个Xamarin Touch项目,但在代码签名阶段失败了。
我的证书和密钥位于系统密钥链中,因此Jenkins可以访问。我在构建项目时没有代码签名问题:
/bin/bash
和xbuild
以Jenkins用户身份登录。/bin/sh
和xbuild
以Jenkins用户身份登录。唯一一次看到代码签名问题的时候是Jenkins构建自己的时候。
错误是"不允许用户交互"我无法解释Jenkins构建的问题,当我运行Jenkins用户时,一切都正常工作来自shell的相同命令。
答案 0 :(得分:1)
您可以尝试在Jenkins凭据区域中导入凭据。
来自here:
允许Jenkins暂存开发者资料这个插件建立在顶部 Credentials插件允许您存储Apple Developer 配置文件(* .developerprofile)文件。此文件包含代码签名 私钥,相应的开发者/分发证书,以及 移动配置文件。您可以从您的文件创建此文件 的XCode。
要将开发人员个人资料上传到Jenkins,请转到"管理 凭证"在系统配置页面中,选择" Apple 开发者档案"来自"添加"按钮。请参阅Credentials插件 进一步的细节。
要使用此个人资料进行签名,请添加"导入开发人员个人资料"作为一个 在运行xcode之前构建步骤,并选择开发人员配置文件 导入到构建机器中。这个构建步骤将安装 开发者资料到奴隶的钥匙串。
答案 1 :(得分:0)
事实证明我的问题是我的代码签名密钥仍然在登录密钥链以及系统密钥链中。
我猜这意味着构建首先看到了登录密钥链中的密钥,但后来失败了,因为它没有被解锁。
一旦我从登录钥匙串中删除它们,所以它们只在系统钥匙串中,它就开始工作了。
我仍然不确定为什么这只是Jenkins内部的一个问题,因为使用以Jenkins登录的shell一切正常。