codesign没有发现身份发现错误

时间:2016-10-12 20:24:01

标签: qt osx-yosemite code-signing codesign

遇到编码问题,并想知道是否有人有任何想法。我正在使用命令行' codesign'来自终端窗口的命令(在OSX 10.10.3 Yosemite下)。我不使用XCode,因为有问题的应用程序是使用命令行gcc和make etc(它是一个基于Qt的应用程序)创建的。

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

Developer ID Application: Foo Bar Ltd (C8C8B8D8X8): no identity found

我用来运行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。我第一次尝试使用编码后,发现没有找到任何身份'错误。此时使用certtool显示我的 证书不再存在。无论他们是否过期,或者过程或升级到Yosemite或Xcode都放弃了我不知道。所以,我登录到我的developer.apple.com帐户并下载了应用程序和安装程序证书[具体来说,我使用Safari下载它们,双击每个下载,将它们打开到Keychain Access并将它们安装到登录密钥链中]。在这之后," certtool y"从codeign命令失败的同一终端窗口给出上面显示的结果。我还安装了Apple全球开发者关系认证中心'证书进入系统钥匙串。

如果我现在打开Keychain Access,这就是我所拥有的:

  • 在'登录'证书中的钥匙串'我已列出的类别:我的开发人员ID应用程序证书,开发人员ID安装人员证书以及Apple全球开发人员关系证书颁发机构
  • 在'系统'证书中的钥匙串'我列出的类别:Apple全球开发者关系认证中心,com.apple.kerberos.kdc,com.apple.systemdefault和我的开发者ID应用程序证书(同样,似乎同时包含登录和系统密钥链)。

如果有人能提供任何帮助,我会非常感激。谢谢!

1 个答案:

答案 0 :(得分:1)

我自己解决了这个问题,感谢上面暗黑之夜的暗示。问题是我的钥匙串中没有私钥。

这是因为,当我发现证书完全丢失时,苹果开发者网站和stackoverflow上其他地方的直接建议是从Apple开发者网站下载开发者ID应用程序和开发者ID安装程序证书,这是容易做到。所以我这样做了,并添加了中级Apple全球开发者关系认证中心'证书也是。但这样做并没有设置私钥,而且编码错误表明这就是问题所在。然后我发现通过向Apple开发站点提交证书签名请求(CSR)的过程设置了私钥。

解决方案: dont 只需使用“下载开发者ID证书”即可。来自apple dev网站的选项,而不是提交CSR,并为Developer ID Application和Developer ID Installer证书执行此操作。

相关问题