set-key-partition-list codesign仍然提示密钥访问

时间:2017-03-24 14:50:20

标签: ios macos security keychain macos-sierra

我正在使用以下命令导入包含我的代码签名标识的公钥和私钥的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`

但是,由于othersmentionedOS 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对话框,要求获得访问我的私钥以进行代码签名的权限:

"codesign wants to access key" dialog

如果我点击Always Allow,则未来的codesign来电不会提示,但我不希望该UI对话框提示。我希望这一切都是可编写脚本的。

为什么set-key-partition-list适用于其他人,而不适合我?

1 个答案:

答案 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`