我们在 macOS 上为 CI 系统使用 codesign 命令:
codesign -v -f -s "identity""file"--keychain "keychain_path"
钥匙串(keychain)是动态创建的,包含私钥和证书。
这曾经很好用,但从 macOS Sierra (10.12) 开始,codesign 在查找证书时不再将自定义钥匙串(keychain)包含在其钥匙串(keychain)搜索列表中(尽管可以访问私钥)。
手动将钥匙串(keychain)添加到搜索列表有帮助(至少作为普通用户):
安全列表钥匙串(keychain) -s "previous_keychain_path""custom_keychain_path"
(首先使用“安全列表钥匙串(keychain)”获取先前的搜索列表)
但是当以 _www 或 daemon 用户身份运行 apache/httpd 时,此命令将被忽略。
- _www需要什么权限才能临时修改钥匙串(keychain)搜索列表?
- 是否有其他方法可以让 codesign 支持 --keychain 选项,就像 Sierra 之前那样?
最佳答案
我想你的 CI 系统是由 LaunchDaemon 启动的。
您必须添加
<key>SessionCreate</key>
<true/>
到 LaunchDaemon
此修改允许 CI 系统修改钥匙串(keychain)搜索列表。
关于ios - 使用用户 _www 或守护程序设置 macOS 钥匙串(keychain)搜索列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52904778/