遇到编码问题,并想知道是否有人有任何想法。我正在使用命令行' 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,这就是我所拥有的:
如果有人能提供任何帮助,我会非常感激。谢谢!
答案 0 :(得分:1)
我自己解决了这个问题,感谢上面暗黑之夜的暗示。问题是我的钥匙串中没有私钥。
这是因为,当我发现证书完全丢失时,苹果开发者网站和stackoverflow上其他地方的直接建议是从Apple开发者网站下载开发者ID应用程序和开发者ID安装程序证书,这是容易做到。所以我这样做了,并添加了中级Apple全球开发者关系认证中心'证书也是。但这样做并没有设置私钥,而且编码错误表明这就是问题所在。然后我发现通过向Apple开发站点提交证书签名请求(CSR)的过程设置了私钥。
解决方案: dont 只需使用“下载开发者ID证书”即可。来自apple dev网站的选项,而不是提交CSR,并为Developer ID Application和Developer ID Installer证书执行此操作。