有关使用开发者ID进行代码签名Mac App的问题

All*_*Hsu 6 macos code-signing

关于使用开发者ID签署Mac App,我有几个问题:

首先,我正在开发一个利用GateKeeper的项目.所以我必须(?)使用开发者ID签署我的应用程序.

  1. 我是否需要配置文件才能使用开发者ID进行签名?在构建设置选项卡中,Developer ID认证标记为Identities without Provisioning Profiles.在Mac Provision Portal中查看,我发现没有地方可以生成配置文件以匹配开发者ID证书而不是提交证书.那么我是否需要配置文件来与开发者ID签名?

  2. 归档我的应用程序后,当我在组织者中选择导出开发人员ID签名的应用程序时,我的开发人员ID认证标有黄色警告图标.但我仍然可以选择证书并签名.可以吗?

  3. 签署我的应用程序后,我曾经sudo spctl -a -v MyApp.app在我sudo spctl --master-enable之前用runed 测试我的应用程序.结果如下:

    EIM.app: rejected
    source=Developer ID
    
    Run Code Online (Sandbox Code Playgroud)

这种拒绝是否与问题2中的警告有关?

这是我第一次使用开发者ID分发Mac App,感谢您的帮助.

gai*_*ige 3

回复:配置配置文件和 DeveloperID\xe2\x80\x94 它们是不必要的。您应该能够在Build SettingsCode Signing Identity部分的自动部分中接受您的 DeveloperID 。如果不能,则您的密钥可能丢失,或者包含该信息的数据库可能存在其他问题。

\n\n

首先,进入“钥匙串访问”并验证您的 DeveloperID 证书是否具有与其关联的随附私钥(这将在显示三角形下可见)。如果没有,那么您应该检查一下是否在任何地方保存了与该证书相关的密钥,因为如果您找不到并重新导入它(例如,从 Xcode 导出的开发人员配置文件),您将需要撤销并重新颁发证书,因为无法对其进行签名。

\n\n

其次,4.6.1 中存在一个已知错误,该错误可能会损坏包含来自开发人员门户的信息的缓存数据库。没有具体迹象表明此行为可能是由此问题引起的,但在执行下一步之前,您可能需要尝试一下。基本上,您需要退出 Xcode,移到一边(或删除)~/Library/Developer/Xcode/connect1.apple.com 4.6.1.db(是的,该文件名中有空格),重新启动 Xcode,转到管理刷新您的配置文件和证书。

\n\n

如果这不起作用,您可能需要考虑撤销您的开发者 ID。

\n\n

警告如果您已成功分发带有证书的代码,请不要撤销它,直到您访问了 Apple 的网站 ( https://developer.apple.com/support/technical/certificates/ ) 并彻底了解了发布的含义。撤销开发者 ID 的代码。具体来说,已安装的软件将继续工作,但用户将无法安装/重新安装使用原始证书签名的二进制文件。

\n\n

如果您从未成功地使用证书分发代码(或者如果您的密钥丢失且无法恢复),您可能需要访问门户并撤销,然后重新颁发您的开发人员 ID 证书。撤销证书后,您可以通过请求新证书来创建新证书。

\n