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

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

我的设置:

  • MacOS Mojave
  • Xcode 10.3
  • 部署目标:10.10(基于情节提要的表单的最小值)

现在,我正在尝试找出如何正确签名的方法,以便最终用户无需执行Gatekeeper覆盖即可运行它。

我在这里:

  • 我有一个付费的Apple Developer帐户,是从组织的付费Developer帐户中委派给我的
  • 我分配了一些角色,可以管理应用程序,证书,供应等。
  • 我已在“偏好设置”下的Xcode帐户下登录了此帐户。
  • 我已经在帐户下创建了捆绑注册,并完全从Xcode复制了
  • 我已经从开发计算机的CSR开始创建了Mac分发证书。
  • 我已将证书下载并导入到机器的钥匙串中(列为“ 3rd Party Mac Developer Application:...”)
  • 我已为此应用创建了一个配置文件,并分配了上述证书,配置文件类型为App Store,但我将自己分发该应用(是否有更正确的配置类型?)
  • 在“权利”下,我选择了“自定义网络协议”,这听起来像是对我的应用程序的准确描述。
  • 我已将配置文件导入Xcode,并在项目目标的“签名”(调试)和“签名”(发布)下选择了它,它自动填充了Team(上级组织)和上述证书。
  • 我将项目中的方案更改为“发布”,并为“正在运行”构建了该方案,在构建过程中收到了钥匙串访问提示,并且签名步骤成功完成
  • codesign -vvv -d xyz.app 返回与以上选择均匹配的注册捆绑软件,证书,团队等。
  • 我将生成的.app放入.dmg图片中,并通过电子邮件发送给自己
  • 我将.dmg下载到另一台Mac上并安装了它
  • 我尝试运行.app,但收到以下Gatekeeper消息:
  

“ XYZ”由于无法识别的开发者而无法打开。   您的安全偏好设置仅允许安装来自App Store和指定开发人员的应用。

如何解决此问题,因此默认情况下,下载的应用程序在Gatekeeper提示符中将具有“打开”按钮。某些应用程序(例如GIMP)即使不是源自App Store也会被正确识别。

我需要解决什么?

lovewang13 回答:如何正确签名Mac应用程序以进行自我分发?

我一直在研究,发现了答案: https://developer.apple.com/documentation/xcode/notarizing_macos_software_before_distribution?language=objc

如果我需要的证书类型是开发人员ID,则提供开发人员ID应用程序的类型,这是用于自分发已签名Mac应用程序的目的。 之后,需要将其提交给Apple进行公证,以满足10.14.5+的要求。公证完成后,我可以将导出的应用程序发送给自己,它为我提供了从Internet下载的应用程序的“打开”选项。这是期望的行为。

我要求帐户持有人通过向其发送CSR来向我颁发开发人员ID证书,因为对于不是原始开发人员帐户持有人的委派用户,开发人员ID证书选项为灰色(管理员角色可能会满足,但我不是一个人,所以不能说)。

是的

本文链接:https://www.f2er.com/3055450.html

大家都在问