2016-10-12 83 views
1

遇到codesign问题,并怀疑任何人是否有任何想法。我在终端窗口中使用命令行'codesign'命令(在OSX 10.10.3 Yosemite下)。我不使用XCode,因为有问题的应用程序是使用命令行gcc和make etc(它是一个基于Qt的应用程序)创建的。codesign未给出身份发现错误

运行的协同设计提供了错误(显然我已经改变了实际的名称和代码在此张贴使用):

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

我用来运行协同设计的命令行是:

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) 

..这一切看起来OK。如果有人知道什么可能是错误的,这将是一个很大的帮助。

有趣的是,相同的命令用于工作。自我上次成功以来发生的事情是,我将Mac更新为Yosemite 10.10.3和Xcode 6.3.1。第一次尝试使用编码后,得到了'没有发现身份'的错误。此时使用certtool显示我的 证书不再存在。无论他们是过期的,还是升级到优胜美地或Xcode的流程都已经放弃了,我不知道。因此,我登录到我的developer.apple.com帐户并下载了应用程序和安装程序证书[特别是,我使用Safari下载了它们,双击每个下载并将它们打开到Keychain Access并将它们安装到登录钥匙串]。完成此操作后,“certtool y”将从codignign命令失败的同一终端窗口给出上述结果。我还将“Apple Worldwide Developer Relations Certification Authority”证书安装到系统钥匙串中。

如果我打开钥匙串访问,现在这是我有:

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

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

+0

当您尝试'codesign -f -s“时,会发生什么?开发者ID应用程序:Foo Bar Ltd”-i uk.co.mydomain.myapp -v binaryfile“(即取出团队ID)? –

+0

感谢您的建议。但是取消团队ID并没有什么区别,仍然没有找到身份。 – user876725

+0

从Apple Dev站点下载证书将为您提供证书,但不会获得私钥。确保您的钥匙串中有私钥并且可以访问(即在本地链中,或者您有权访问系统钥匙串)。 – TheDarkKnight

回答

1

我自己解决了这个问题,这要感谢上面DarkKnight的提示。问题在于我的钥匙串中缺少私钥。

这是因为,当我发现证书完全丢失时,苹果开发者网站和其他地方在stackoverflow上给出的即时建议是从苹果开发者网站下载开发者ID应用程序和开发者ID安装者证书,很容易做到。所以我这样做了,并且增加了中间的“Apple Worldwide Developer Relations Certification Authority”证书。但是这样做不会设置私人密钥,而且任何地方的密码错误都不会表明这是问题所在。然后我发现通过提交证书签名请求(CSR)到苹果开发站点的过程设置了私钥。

解决方法:简单地使用从苹果开发的网站上的“下载开发者ID证书”选项,而不是提交CSR,并为双方的开发者ID的应用和开发者ID安装证书做到这一点。

相关问题