设置密钥分区列表codesign仍然提示密钥访问
我正在使用以下命令导入包含公钥和私钥的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`
但是,正如其他人所说 , OS X 10.12 Sierra
现在要求您在import
之后set-key-partition-list
:
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
为其他人工作,而不是为我?
在我原来的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`