6

我正在将代码签名集成到我们的构建中,并创建了一个自定义钥匙串,该钥匙串保存在源代码树中并用于对代码进行签名(它~/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,结果相同。

4

1 回答 1

9

一些 codesign 的错误信息不太清楚。这里的问题是 codesign 找不到钥匙串,这是由于使用--keychain=~/path. 这被解释为单个参数,并且不执行波浪号扩展。如果您修改命令以使用单独的参数,它应该按预期工作:

codesign --sign 'Mac Developer: John Doe (AA1AAA1AAA)' \
    --keychain ~/Library/Keychains/xxx.keychain \
    dist/64/gmake/release/bin/libmylib.dylib
于 2013-10-07T16:28:07.353 回答