Hea*_*ers 5 security macos keychain ios macos-sierra
我PEM使用以下命令导入包含公钥和私钥的文件,用于我的代码签名标识:
security import "${PEM_FILE}" -k ~/Library/Keychains/login.keychain -T /usr/bin/codesign -T /usr/bin/security
Run Code Online (Sandbox Code Playgroud)
上OS X 10.11 El Capitan然后我可以codesign不用提示:
codesign --force --sign "${IDENTITY_HASH}" --timestamp=none `mktemp`
Run Code Online (Sandbox Code Playgroud)
然而,正如其他人已经提到,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
Run Code Online (Sandbox Code Playgroud)
但是,即使之后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
Run Code Online (Sandbox Code Playgroud)
然后codesign不显示对话框.它只是工作!
codesign --force --sign "${IDENTITY_HASH}" --timestamp=none `mktemp`
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2682 次 |
| 最近记录: |