【发布时间】:2017-04-20 05:38:49
【问题描述】:
问题:
在阅读本文之前请注意:“告诉他们去System preferences > Security & privacy 和allow 3rd party applications to run。这不是一个可接受的解决方案。
我创建了一个.app,它已使用有效的 Mac 开发人员证书进行签名。然而从互联网上下载并运行仍然会引发安全提示:
无法打开应用,因为它来自身份不明的开发者
这是.app 的codesign -vvv 终端转储:
Executable=/Users/me/Desktop/ADRA.app/Contents/MacOS/ADRA
Identifier=unity.Company.ADRA NSW 2016
Format=app bundle with Mach-O thin (i386)
CodeDirectory v=20200 size=178145 flags=0x0(none) hashes=5561+3 location=embedded
Hash type=sha256 size=32
CandidateCDHash sha1=79ecf88721d6387749c1f6b10355c3683ef20eb2
CandidateCDHash sha256=0799e968a18a663a0c08d26d3fb7826017ce5a3a
Hash choices=sha1,sha256
CDHash=0799e968a18a663a0c08d26d3fb7826017ce5a3a
Signature size=4739
Authority=3rd Party Mac Developer Application: Company Pty Ltd (NH73TNDB28)
Authority=Apple Worldwide Developer Relations Certification Authority
Authority=Apple Root CA
Signed Time=20 Apr 2017, 2:46:12 PM
Info.plist entries=14
TeamIdentifier=NH73TNDB28
Sealed Resources version=2 rules=12 files=138
Internal requirements count=1 size=224
我不明白为什么这不通过 Gatekeeper?有什么遗漏吗? Apple 是否需要进一步付款/贿赂或其他什么?
更新 1:
@TheDarkKnight 建议我使用不正确的证书来签署.app。看起来他们是正确的,所以我去创建一个新的Developer ID Application certificate 但显然因为我不是组帐户中的“代理”,所以我现在必须等到“代理”为我创建一个 - 似乎倒退,有没有其他方法可以等待“代理”为我做这个?
(在 Xcode 中)如果“开发者 ID”单选按钮显示为灰色,您可能有一个组帐户。 这些类型的帐户只允许“代理”角色创建开发者 ID。 如果您遇到困难,请联系创建您的群组 Apple 开发者帐户的人。
https://developer.mozilla.org/en-US/docs/Mozilla/Signing_Mozilla_apps_for_Mac_OS_X
更新 2:
所以我今天终于拿到了我的新证书,重新签署了.app,从运行的服务器下载了它,仍然收到错误消息。现在看来权威是正确的:
Executable=/Users/me/Downloads/ADRA.app/Contents/MacOS/ADRA
Identifier=com.company.adra
Format=app bundle with Mach-O thin (i386)
CodeDirectory v=20200 size=178133 flags=0x0(none) hashes=5561+3 location=embedded
Library validation warning=OS X SDK version before 10.9 does not support Library Validation
OSPlatform=36
OSSDKVersion=657408
OSVersionMin=656896
Hash type=sha256 size=32
CandidateCDHash sha1=90d2a54162d6d018bf4f7602d7707c8e8e522fc6
CandidateCDHash sha256=dadfe5203d1367ea776f9501025dbd4ce751ee30
Hash choices=sha1,sha256
Page size=4096
CDHash=dadfe5203d1367ea776f9501025dbd4ce751ee30
Signature size=8930
Authority=Developer ID Application: Company Pty Ltd (NH73TNDB28)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=10 May 2017, 3:36:51 pm
Info.plist entries=14
TeamIdentifier=NH73TNDB28
Sealed Resources version=2 rules=12 files=138
Internal requirements count=1 size=184
我只是在.app 上签名,我还需要做些什么来完成这项工作吗?是否需要等待一段时间才能生效?
【问题讨论】:
-
Authority=3rd Party Mac Developer Application: Company Pty Ltd (NH73TNDB28) - 这是自签名证书吗?开发者证书通常以“开发者 ID 应用程序...”开头。出于显而易见的原因,Gatekeeper 不应允许使用自签名证书。
-
@TheDarkKnight 我自己创建了证书吗? - 如果这就是你要问的,不,我是从
apple.developer那里得到的。 -
我认为您那里的证书类型错误。您的 Apple Dev 帐户中是否还有其他证书可供下载,这可能值得一看。查看我机器上的所有其他第 3 方应用程序,它们的证书“权限”都以 “开发者 ID 应用程序:...” 开头
-
@TheDarkKnight 这非常有价值 - 谢谢,我会在早上看第一件事并验证这里发生了什么。
-
@TheDarkKnight 我只是
codesign verified一堆 3rd 方应用程序,你是对的,他们都有Developer ID Application开始。现在正在考虑获得新证书。
标签: macos code-signing