首页 > 解决方案 > macOS 代码设计错误:errSecInternalComponent

问题描述

我在 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

在这里的任何帮助将不胜感激!我觉得我已经尝试了所有建议的修复方法,所以我的想法已经不多了。

标签: javamacosjenkinscodesign

解决方案


经过大量的抨击后,我终于发现钥匙串(通过 cli 创建时)有 5 分钟的超时时间,这解释了为什么它们在配置阶段失败。修复是运行以下命令:

security set-keychain-settings login.keychain-db

推荐阅读