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



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

我的设置:

  • MacOS 莫哈韦
  • Xcode 10.3
  • 部署目标:10.10(基于情节提要的窗体的最低要求(

现在我正在尝试弄清楚如何正确签名,以便最终用户可以在不执行网守覆盖的情况下运行它。

这是我所在的地方:

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

无法打开"XYZ",因为它来自未识别的开发人员。您的安全偏好设置仅允许安装来自 App Store 和已识别开发者的应用。

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

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

我一直在挖掘它,我找到了答案: https://developer.apple.com/documentation/xcode/notarizing_macos_software_before_distribution?language=objc

我需要的证书类型是开发人员 ID,预配类型是开发人员 ID 应用程序,这是用于自行分发已签名的 Mac 应用程序的类型。 之后需要提交给苹果公司进行公证,以满足10.14.5+的要求。 公证完成后,我能够将导出的应用程序发送给自己,它为我提供了从互联网下载的应用程序的"打开"选项。 这是所需的行为。

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

耶。

相关内容

  • 没有找到相关文章

最新更新