Qt codesign未发现标识错误

Qt codesign未发现标识错误,qt,osx-yosemite,code-signing,codesign,Qt,Osx Yosemite,Code Signing,Codesign,在协同设计方面有问题,不知道是否有人有任何想法。我在终端窗口中使用命令行“codesign”命令(在OSX 10.10.3 Yosemite下)。我不使用XCode,因为这个应用程序是使用命令行gcc和make etc创建的(它是一个基于Qt的应用程序) 运行codesign会出现错误(显然我已经更改了此帖子中使用的实际名称和代码): 我用来运行codesign的命令行是: codesign -f -s "Developer ID Application: Foo Bar Ltd (C8C8B8

在协同设计方面有问题,不知道是否有人有任何想法。我在终端窗口中使用命令行“codesign”命令(在OSX 10.10.3 Yosemite下)。我不使用XCode,因为这个应用程序是使用命令行gcc和make etc创建的(它是一个基于Qt的应用程序)

运行codesign会出现错误(显然我已经更改了此帖子中使用的实际名称和代码):

我用来运行codesign的命令行是:

codesign -f -s "Developer ID Application: Foo Bar Ltd (C8C8B8D8X8)" -i uk.co.mydomain.myapp -v binaryfile
但是我已经安装了证书,所以我不明白这一点。如果我从同一终端窗口执行以下操作:

certtool y | grep Developer
我得到:

Common Name     : Developer ID Certification Authority
Common Name     : Developer ID Installer: Foo Bar Ltd (C8C8B8D8X8)
Common Name     : Developer ID Certification Authority
Common Name     : Developer ID Application: Foo Bar Ltd (C8C8B8D8X8)
。。看起来都不错。如果有人知道可能出了什么问题,这将是一个很大的帮助

有趣的是,使用相同的命令来工作。自从我上次成功地将Mac升级到Yosemite 10.10.3和Xcode 6.3.1之后,发生了什么。我第一次尝试使用codesign时,出现了“找不到标识”错误。此时,使用certtool表明 证书不在了。我不知道它们是否已经过期,或者升级到Yosemite或Xcode的过程中是否删除了它们。因此,我登录到我的developer.apple.com帐户并下载了应用程序和安装程序证书[具体来说,我使用Safari下载了它们,双击每个下载,打开它们进入Keychain访问并将它们安装到login Keychain]。完成此操作后,“certtool y”将在codesign命令失败的同一终端窗口中给出上述结果。我还将“Apple Worldwide Developer Relations Certification Authority”证书安装到系统密钥链中

如果我现在打开钥匙链访问,这就是我所拥有的:

  • 在“证书”类别中的“登录”密钥链下,我列出了:我的开发者ID应用程序证书、开发者ID安装程序证书和苹果全球开发者关系认证机构
  • 在“证书”类别中的“系统”密钥链下,我列出了:Apple Worldwide Developer Relations Certification Authority、com.Apple.kerberos.kdc、com.Apple.systemdefault和我的开发者ID应用程序证书(同样,似乎在登录和系统密钥链中)

如果有人能提供任何帮助,我将不胜感激。谢谢

多亏了上面黑暗之夜的暗示,我自己解决了这个问题。问题是我的钥匙链中缺少私钥

出现这种情况的原因是,当我发现证书完全丢失时,苹果开发者网站和stackoverflow上的其他网站立即给出的建议是从苹果开发者网站下载开发者ID应用程序和开发者ID安装程序证书,这很容易做到。所以我这样做了,并添加了中间的“苹果全球开发者关系认证机构”证书。但是这样做并不能设置私钥,代码设计错误也没有表明这就是问题所在。然后我发现,在向apple dev站点提交证书签名请求(CSR)的过程中,确实设置了私钥


解决方案:不要简单地从apple dev站点使用“下载开发者ID证书”选项,而是提交CSR,并对开发者ID应用程序和开发者ID安装程序证书执行此操作。

当您尝试
codesign-f-s“开发者ID应用程序:Foo Bar Ltd”-i uk.co.mydomain.myapp-v binaryfile
(即取出团队ID)?感谢您的建议。但是删除团队ID没有任何区别,仍然“找不到身份”。从Apple Dev网站下载证书将为您提供证书,但不会提供私钥。请确保您的密钥链中有私钥,并且可以访问(即,在本地链中,或者您可以访问系统密钥链)。感谢您的评论。这可能是一个愚蠢的问题……但是我从哪里获得私钥,以及该要求在哪里描述?
Common Name     : Developer ID Certification Authority
Common Name     : Developer ID Installer: Foo Bar Ltd (C8C8B8D8X8)
Common Name     : Developer ID Certification Authority
Common Name     : Developer ID Application: Foo Bar Ltd (C8C8B8D8X8)