我正在将代码签名集成到我们的构建中,并创建了一个自定义钥匙串(keychain),该钥匙串(keychain)位于源代码树中,并用于对代码进行签名(在使用之前将其复制到~/Library/Keychains
,因此它位于众所周知的位置)。
但是,当尝试签名时出现错误:
$ /usr/bin/codesign --sign='Mac Developer: John Doe (AA1AAA1AAA)' \
--keychain=~/Library/Keychains/xxx.keychain \
dist/64/gmake/release/bin/libmylib.dylib
Mac Developer: John Doe (AA1AAA1AAA): no identity found
然而:
$ security find-identity -p codesigning ~/Library/Keychains/xxx.keychain
Policy: Code Signing
Matching identities
1) 49F2FBE79899DF18A9638AC6B1302E2EB6E079AD "Mac Developer: John Doe (AA1AAA1AAA)"
1 identities found
Valid identities only
1) 49F2FBE79899DF18A9638AC6B1302E2EB6E079AD "Mac Developer: John Doe (AA1AAA1AAA)"
所以我不明白为什么
codesign
无法找到身份。有人可以提出解决方案吗?
请注意,我也尝试过使用身份的SHA-1,结果相同。
最佳答案
一些codesign的错误消息还不够清楚。这里的问题是codesign找不到钥匙串(keychain),这是由--keychain=~/path
的使用引起的。这被解释为单个参数,并且不执行波浪号扩展。如果您修改命令以使用单独的参数,则它应能按预期工作:
codesign --sign 'Mac Developer: John Doe (AA1AAA1AAA)' \
--keychain ~/Library/Keychains/xxx.keychain \
dist/64/gmake/release/bin/libmylib.dylib
关于macos - Codesign说 “no identity found”但是身份在钥匙串(keychain)上,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19183552/