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

时间:2013-01-11 08:20:53

标签: 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之前已经过了。结果如下:

    EIM.app: rejected
    source=Developer ID
    
  4. 这种拒绝是否与问题2中的警告有关?

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

1 个答案:

答案 0 :(得分:3)

Re:供应配置文件和DeveloperID-它们是不必要的。您应该能够在构建设置代码签名标识部分的自动部分接受您的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。特别是安装的软件将继续工作,但用户将无法安装/重新安装使用原始证书签名的二进制文件。

如果您从未使用证书成功分发代码(或者您的密钥无法丢失),您可能需要转到门户网站并撤消,然后重新颁发您的开发者ID证书。撤消后,您可以通过申请新证书来创建新证书。