iOS代码签名仅对Jenkins失败

iOS代码签名仅对Jenkins失败,ios,jenkins,xamarin,xbuild,Ios,Jenkins,Xamarin,Xbuild,我正在尝试从Jenkins构建中构建Xamarin Touch项目,但在代码签名阶段失败 我的证书和密钥在系统密钥链中,因此Jenkins应该可以访问。我在构建项目时没有代码签名问题: 使用Xamarin Studio 使用/bin/bash和xbuild以Jenkins用户身份登录 使用/bin/sh和xbuild以Jenkins用户身份登录 只有当Jenkins构建自己时,代码签名问题才会出现 错误是“不允许用户交互”,当我从shell运行相同的命令时,我无法解释Jenkins构建在一切

我正在尝试从Jenkins构建中构建Xamarin Touch项目,但在代码签名阶段失败

我的证书和密钥在系统密钥链中,因此Jenkins应该可以访问。我在构建项目时没有代码签名问题:

  • 使用Xamarin Studio
  • 使用
    /bin/bash
    xbuild
    以Jenkins用户身份登录
  • 使用
    /bin/sh
    xbuild
    以Jenkins用户身份登录
只有当Jenkins构建自己时,代码签名问题才会出现


错误是“不允许用户交互”,当我从shell运行相同的命令时,我无法解释Jenkins构建在一切都以Jenkins用户的身份运行时出现了什么问题。

您可以尝试在Jenkins凭据区域导入凭据

发件人:

允许Jenkins将开发人员配置文件放在这个插件之上构建 允许您存储您的Apple开发者的凭据插件 配置文件(*.developerprofile)文件。此文件包含代码签名 私钥、相应的开发人员/分发证书,以及 移动资源调配配置文件。您可以从数据库中创建此文件 XCode

要将开发人员配置文件上载到Jenkins,请转到“管理” 在系统配置页面中选择“凭据”,然后选择“Apple” “添加”按钮中的“开发人员配置文件”。有关详细信息,请参阅凭据插件 进一步详情

要使用此配置文件进行签名,请将“导入开发人员配置文件”添加为 在运行xcode之前构建步骤,并选择要创建的开发人员配置文件 导入到生成计算机中。此生成步骤将安装 将开发人员配置文件放入从机的钥匙链中


所以我的问题是我的代码签名密钥仍然在登录密钥链和系统密钥链中

我猜这意味着构建首先看到了登录密钥链中的密钥,但由于没有解锁而失败

一旦我从登录密钥链中删除了它们,所以它们只在系统密钥链中,它就开始工作了


我仍然不知道为什么这只是詹金斯内部的一个问题,因为使用以詹金斯身份登录的shell,一切都正常工作

这一切都是在一个Jenkins master box上完成的,因此他们在访问密钥链时不会出现任何问题,正如我所说,我已经将所需的证书和密钥放入了系统keychain.Dup?&我认为这个问题是相似的,但略有不同,我已经将所有内容都移动到了系统密钥链中,所以默认情况下,所有内容现在都应该可以访问。钥匙链本身必须是正常的,因为在Jenkins之外,即使我以外壳中的Jenkins身份登录,一切都可以正常工作。