1

我正在尝试从 Jenkins 构建构建一个 Xamarin Touch 项目,它在代码签名阶段失败。

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

  • 使用 Xamarin Studio。
  • 使用/bin/bashxbuild以 Jenkins 用户身份登录。
  • 使用/bin/shxbuild以 Jenkins 用户身份登录。

唯一出现代码签名问题的时间是 Jenkins 自己构建的时候。

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

4

2 回答 2

1

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

这里

允许 Jenkins 暂存开发人员配置文件 此插件构建在 Credentials 插件之上,允许您存储您的 Apple 开发人员配置文件 (*.developerprofile) 文件。此文件包含代码签名私钥、相应的开发人员/分发证书和移动配置文件。您可以从 XCode 创建此文件。

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

要使用此配置文件进行签名,请在运行 xcode 之前添加“导入开发人员配置文件”作为构建步骤,然后选择要导入到构建机器的开发人员配置文件。此构建步骤会将开发人员配置文件安装到从属的钥匙串中。

于 2015-10-27T16:45:34.860 回答
0

所以事实证明我的问题是我的代码签名密钥仍然在登录钥匙串以及系统钥匙串中。

我猜这意味着构建首先看到了登录钥匙串中的钥匙,但后来因为没有解锁而失败。

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

我仍然不确定为什么这只是 Jenkins 内部的一个问题,因为使用以 Jenkins 身份登录的 shell 一切正常。

于 2015-10-28T08:22:50.697 回答