7

我有几个关于使用 Developer ID 签署 Mac App 的问题:

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

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

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

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

    EIM.app: rejected
    source=Developer ID
    

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

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

4

1 回答 1

3

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

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

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

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

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

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

于 2013-04-14T23:23:16.423 回答