我们在macOS上将codesign命令用于CI系统:
codesign -v -f -s "identity" "file" --keychain "keychain_path"
钥匙串是即时创建的,其中包含私钥和证书。
这曾经很好用,但是从 macOS Sierra(10.12)开始,codesign在查找证书时不再在其 keychain搜索列表中包含自定义钥匙串。 (尽管可以访问私钥)。
手动将钥匙串添加到搜索列表有帮助(至少作为普通用户):
security list-keychains -s "previous_keychain_path" "custom_keychain_path"
(其中先前的搜索列表是使用“安全列表-钥匙串”首先获取的)
但是当以 _www 或 daemon 用户身份运行 apache / httpd 时,此命令将被忽略。
答案 0 :(得分:0)
我想您的CI系统是由LaunchDaemon启动的。
您必须添加
<key>SessionCreate</key>
<true/>
到LaunchDaemon
此修改允许CI系统修改钥匙串搜索列表。