我正在使用以下命令导入包含我的代码签名标识的公钥和私钥的PEM
文件:
security import "${PEM_FILE}" -k ~/Library/Keychains/login.keychain -T /usr/bin/codesign -T /usr/bin/security
在OS X 10.11 El Capitan
我可以codesign
没有提示:
codesign --force --sign "${IDENTITY_HASH}" --timestamp=none `mktemp`
但是,由于others有mentioned,OS X 10.12 Sierra
现在要求您set-key-partition-list
之后import
:
security set-key-partition-list -S apple-tool:,apple: -s -k "${PASSWORD}" ~/Library/Keychains/login.keychain
但是,即使在set-key-partition-list
之后,我仍然会获得一个UI对话框,要求获得访问我的私钥以进行代码签名的权限:
如果我点击Always Allow
,则未来的codesign
来电不会提示,但我不希望该UI对话框提示。我希望这一切都是可编写脚本的。
为什么set-key-partition-list
适用于其他人,而不适合我?
答案 0 :(得分:9)
在我原来的import
命令中,我没有为我的钥匙串提供密码。如果我为import
命令提供密码,set-key-partition-list
会阻止对话框显示:
security import "${PEM_FILE}" -k ~/Library/Keychains/login.keychain -P "${PASSWORD}" -T /usr/bin/codesign -T /usr/bin/security
security set-key-partition-list -S apple-tool:,apple: -s -k "${PASSWORD}" ~/Library/Keychains/login.keychain
然后codesign
没有显示对话框。它只是有效!
codesign --force --sign "${IDENTITY_HASH}" --timestamp=none `mktemp`