问题描述
我在 Jenkins 中对我的代码进行代码设计时遇到了一些问题。我过去使用的配置从来没有让我感到悲伤,但我昨天添加了 3 个新的 macOS 执行器,但它们都没有工作。
我得到的实际错误是 OpenJDK 配置脚本的一部分:
configure:54803: checking for codesign
configure:55031: result: /usr/bin/codesign
configure:55436: checking if codesign certificate is present
codesign-testfile: errSecInternalComponent
configure:55444: result: no
在运行之前,我已经解锁了钥匙串并验证钥匙串包含证书。
我能够通过 SSH 连接到机器并运行这个简单的脚本,它基本上与 jenkins 做同样的事情:
security unlock-keychain -p <password> login.keychain-db
rm -rf /Users/jenkins/test && touch /Users/jenkins/test
codesign --sign "Developer ID Application: <name>" /Users/jenkins/test
根据一些研究,我所看到的唯一另一件事是正确设置我已经完成的键分区列表:
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k <password> /Users/jenkins/Library/Keychains/login.keychain-db
这里的任何帮助将不胜感激!我觉得我已经尝试了所有建议的修复方法,所以我的想法已经用完了。
解决方法
经过大量的猛烈抨击后,我终于发现钥匙串(通过 cli 创建时)有 5 分钟的超时时间,这解释了它们在配置阶段失败的原因。修复方法是运行以下命令:
security set-keychain-settings login.keychain-db