Xcode 如何正确签署Mac应用程序进行自我分发?

Xcode 如何正确签署Mac应用程序进行自我分发?,xcode,macos,certificate,code-signing,apple-developer,Xcode,Macos,Certificate,Code Signing,Apple Developer,我创建了一个Mac文件上传客户端应用程序,它基于UDT库通过UDP协议实现了高性能可靠的数据传输 我的设置: 莫哈韦马科斯酒店 Xcode 10.3 部署目标:10.10(基于故事板的表单最低要求) 现在我正试图弄清楚如何正确地对它进行签名,这样最终用户就可以运行它,而无需进行网守覆盖 这就是我所处的位置: 我有一个付费的苹果开发者账户,由组织付费开发者账户委托给我 我有分配给我的角色,允许我管理应用程序、证书、资源调配等 我是在首选项下的Xcode帐户下登录到此帐户的 我已经在帐户下创建

我创建了一个Mac文件上传客户端应用程序,它基于UDT库通过UDP协议实现了高性能可靠的数据传输

我的设置:

  • 莫哈韦马科斯酒店
  • Xcode 10.3
  • 部署目标:10.10(基于故事板的表单最低要求)
现在我正试图弄清楚如何正确地对它进行签名,这样最终用户就可以运行它,而无需进行网守覆盖

这就是我所处的位置:

  • 我有一个付费的苹果开发者账户,由组织付费开发者账户委托给我
  • 我有分配给我的角色,允许我管理应用程序、证书、资源调配等
  • 我是在首选项下的Xcode帐户下登录到此帐户的
  • 我已经在帐户下创建了一个bundle注册,完全是从Xcode复制的
  • 我已经创建了一个Mac分发证书,从我的开发机器的CSR开始
  • 我已下载证书并将其导入我机器的密钥链(列为“第三方Mac开发者应用程序:…”)
  • 我已为此应用创建了一个配置文件,分配了上述证书,配置文件类型为app Store,但我将自己分发应用程序(是否有更正确的配置类型?)
  • 在“权利”下,我选择了“自定义网络协议”,这听起来像是对我的应用程序的准确描述
  • 我已经将配置文件导入到Xcode中,并在项目目标的签名(调试)和签名(发布)下选择它,它会自动填充团队(父组织)和上述证书
  • 我将项目中的方案更改为“Release”,并将其构建为“Running”,在构建过程中我得到一个密钥链访问提示,签名步骤成功完成
  • codesign-vvv-d xyz.app返回注册的捆绑包、证书、团队等,所有这些都与上述选择相匹配
  • 我将生成的.app放入.dmg图像并通过电子邮件发送给自己
  • 我在另一台Mac上下载了.dmg并安装了它
  • 我尝试运行.app,但收到以下网关守卫消息:
无法打开“XYZ”,因为它来自未识别的开发人员。 您的安全首选项仅允许安装来自应用商店和已识别开发人员的应用

我该如何解决这个问题,以便下载的应用程序在默认情况下在网关守护提示中有一个“打开”按钮。一些应用程序(例如GIMP)被正确识别,即使它们不是来自应用商店


我需要什么来解决这个问题呢?

我一直在钻研,我找到了答案:

我需要的类型if证书是Developer ID和provision Developer ID Application的类型,这是用于自分发签名Mac应用程序的类型。 之后需要提交苹果公证,以满足10.14.5+的要求。公证完成后,我可以将导出的应用程序发送给我自己,它为我提供了从互联网下载的应用程序的“开放”选项。这是理想的行为

它要求我请求帐户持有人通过向他们发送CSR向我颁发开发人员ID证书,因为对于不是原始开发人员帐户持有人的授权用户,开发人员ID证书选项变灰(管理员角色可能满足要求,但我不是这样的人,所以不能说)