macos – Codesign说“没有找到身份”,但身份是在钥匙串上

我正在将代码签名集成到我们的构建中并创建了一个自定义密钥链,该密钥链保存在源代码树中并用于对代码进行签名(在使用之前将其复制到〜/ 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)"

所以我不明白为什么codeign无法找到身份.

谁有人建议解决方案?

请注意,我也尝试使用标识的SHA-1,结果相同.

解决方法

一些codeign的错误消息不太明确.这里的问题是,协同设计无法找到钥匙串,这是由使用–keychain =〜/ path引起的.这被解释为单个参数,并且不执行波浪扩展.如果修改命令以使用单独的参数,它应该按预期工作:
codesign --sign 'Mac Developer: John Doe (AA1AAA1AAA)' 
    --keychain ~/Library/Keychains/xxx.keychain 
    dist/64/gmake/release/bin/libmylib.dylib

以上是来客网为你收集整理的macos – Codesign说“没有找到身份”,但身份是在钥匙串上全部内容,希望文章能够帮你解决macos – Codesign说“没有找到身份”,但身份是在钥匙串上所遇到的程序开发问题。

如果觉得来客网网站内容还不错,欢迎将来客网网站推荐给程序员好友。