问题:iOS 代码签名仅对 Jenkins 失败

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

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

  • 使用 Xamarin Studio。

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

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

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

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

解答

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

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

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

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

Logo

CI/CD社区为您提供最前沿的新闻资讯和知识内容

更多推荐