6
我正在将代码签名集成到我们的版本中,并创建了一个自定义钥匙串,该钥匙串被保存在源代码树中并用于对代码进行签名(复制到~/Library/Keychains
在使用之前,所以它在一个众所周知的位置)。Codesign表示“找不到身份证”但钥匙串上的身份
但是,当试图注册我得到一个错误:
$ /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,结果相同。
有趣;如果我用这种方式指定参数,我并不认为shell不会扩展'〜'。我会明天测试,然后回到你身边,但是我认为你是一个赢家。 – trojanfoe
是的,这是答案,但我现在正在“不允许用户交互”,尽管我已用“安全解锁钥匙串”解锁了它。现在我知道该序列可以使用'login.keychain'(我经常这样做),但是在使用非标准钥匙串时它看起来不起作用。我讨厌成为吸血鬼*但你有什么建议吗? – trojanfoe
我能想到几种可能性。一种是钥匙串还没有配置为始终允许对私钥进行密码访问,因此系统要提示用户允许访问。您可以通过双击私钥并在访问控制下添加codesign(或允许所有应用程序),通过Keychain Access进行设置。另一个是如果在构建过程的早期发生解锁,5分钟的默认钥匙串解锁超时过短。您可以通过钥匙串设置来控制它,以延长或删除超时时间。 –