【发布时间】:2020-03-17 19:21:03
【问题描述】:
我创建了一个 Mac 文件上传客户端应用程序,它基于 UDT 库通过 UDP 协议实现高性能可靠数据传输。
我的设置:
- MacOS 莫哈韦沙漠
- Xcode 10.3
- 部署目标:10.10(基于情节提要的表单的最低要求)
现在我正在尝试弄清楚如何正确签署它,以便最终用户可以在不执行 Gatekeeper 覆盖的情况下运行它。
这是我所在的位置:
- 我有一个付费的 Apple 开发者帐户,该帐户是从一个组织的付费开发者帐户委托给我的
- 分配给我的角色允许我管理应用、证书、配置等。
- 我在 Preferences 下的 Xcode 帐户下登录了此帐户。
- 我在账号下创建了一个bundle注册,完全是从Xcode复制过来的
- 我创建了一个 Mac 分发证书,从我的开发机器上的 CSR 开始。
- 我已下载证书并将其导入我机器的钥匙串(列为“3rd Party Mac Developer Application:...”)
- 我已为此应用创建了一个配置文件,并分配了上述证书,配置文件类型为 App Store,但我将自己分发该应用(是否有更正确的配置类型?)
- 在“权利”下,我选择了“自定义网络协议”,这听起来像是对我的应用程序的准确描述。
- 我已将配置文件导入 Xcode 并在我的项目目标的 Signing (Debug) 和 Signing (Release) 下选择它,它会自动填充 Team(父组织)和上述证书。
- 我将项目中的方案更改为“Release”并将其构建为“Running”,在构建过程中收到钥匙串访问提示,并且签名步骤成功完成
- codesign -vvv -d xyz.app 返回已注册的捆绑包、证书、团队等,均符合上述选择。
- 我将生成的 .app 放入 .dmg 图像并通过电子邮件发送给自己
- 我在另一台 Mac 上下载了 .dmg 并安装了它
- 我尝试运行 .app,但收到以下 Gatekeeper 消息:
无法打开“XYZ”,因为它来自身份不明的开发者。 您的安全首选项仅允许安装来自 App Store 和已识别开发者的应用。
如何解决此问题,以便下载的应用程序默认在 Gatekeeper 提示符中具有“打开”按钮。某些应用程序(例如 GIMP)可以正确识别,即使它们并非来自 App Store。
我需要做什么来解决这个问题?
【问题讨论】:
标签: xcode macos certificate code-signing apple-developer