无法打开应用程序,因为它来自身份不明的开发者


9

题:

请阅读此之前注: “告诉他们去System preferences > Security & privacyallow 3rd party applications to run。这不是一个可接受的解决这个问题。

我创建了一个.app已使用有效的Mac Developer证书签名的证书。但是从Internet下载并运行仍会引发安全提示:

无法打开应用程序,因为它来自身份不明的开发者

这是的codesign -vvv终端转储.app

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

我不明白为什么这不能通过网守?缺少什么吗?苹果还需要其他东西吗?


更新1:

@TheDarkKnight建议我使用了不正确的证书对进行签名.app。看起来好像是正确的,所以我去创建了一个新Developer ID Application certificate帐户,但显然是因为我不是群组帐户中的“代理商”,所以我现在必须等到“代理商”为我创建一个帐户之后-似乎倒退了,在那里没有其他办法来等待“特工”替我做这个吗?

(在Xcode中)如果“开发人员ID”单选按钮显示为灰色,则您可能有一个组帐户。这些类型的帐户仅允许“代理”角色创建开发人员ID。如果您被困在这里,请与创建您的小组Apple开发人员帐户的人联系。

https://developer.mozilla.org/zh-CN/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要完成这项工作我还有什么要做的吗?我必须等待一段时间才能生效吗?


更新3:

现在距离更新2差不多1个月了,这个问题仍然存在,因此悬赏。


1
DMG下载后,该应用程序是否嵌入了经过代码签名的磁盘映像中?您正在测试哪个版本的macOS?
Graham Miln

@GrahamMiln我必须在macOS版本上与您联系。我没有签名.dmg,您也必须签名吗?我使用的是successsoftware.net/2012/08/30/…作为参考,他们指出.dmg不需要额外的签名,因此我没有对其进行签名。
Zze


尝试通过以下方式测试签名:spctl -vvv -a -t open --context context:primary-signature <full path to app or dmg>
Graham Miln

@GrahamMiln感谢您的评论,我会在早上与您联系!
Zze

Answers:


7

概括地说,在Mac App Store之外分发应用程序时,您需要:

  1. 将签名身份设置为开发人员ID
  2. 创建您的开发人员ID证书
  3. 创建您的应用档案
  4. 验证您的应用
  5. 导出开发者ID签名的应用
  6. 签署安装程序包(不适用于您的情况)
  7. 在启用Gatekeeper的情况下测试应用程序的行为,然后在禁用Gatekeeper的情况下再次测试

对此类问题进行故障排除可能很棘手,因为可以很容易地假设OP(在本例中为您)知道多少,等等。通过阅读您的问题,我将假定已经完成了前三个步骤。

因此,让我们首先仔细检查您如何验证应用程序。

验证您的应用

要验证开发者ID签名的应用,请按照以下步骤操作:

  1. 在Xcode中,转到产品>存档
  2. 档案管理器窗口将会出现
  3. 选择相关应用的存档
  4. 点击Validate按钮
  5. 出现一个对话框,要求您选择一种验证方法
  6. 选择验证开发人员ID签名的应用程序选项
  7. 点击 Next
  8. 在下一个窗口中,从弹出菜单中选择一个团队
  9. 点击 Choose
  10. 点击Validate按钮

这将确定任何验证问题。如果发现任何问题,这将是您的问题(或至少是部分问题),因此您需要解决此问题。

如果未发现问题,请继续下面的操作。

导出开发者ID签名的应用

  1. 仍在“存档组织者”窗口中,为有问题的应用选择存档
  2. 点击Export按钮
  3. 出现一个对话框,要求您选择一种导出方法
  4. 选择导出开发人员ID签名的应用程序选项
  5. 点击 Next
  6. 在下一个窗口中,从弹出菜单中选择一个团队
  7. 点击 Choose
  8. 点击Export按钮

导出应用后,您应该先启用Gatekeeper并再次禁用Gatekeeper进行测试。


感谢您的回答,我将尽快尝试。
6
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.