如何从 Apple 下载经过公证的文件?

How to download notarized files from Apple?

我已经通过命令行为我正在为其开发插件的 Mac 应用程序成功公证了一个插件。此插件旨在在 Mac appstore 之外分发。

xcrun altool --notarize-app --primary-bundle-id "com.demo.bundle.id" --username "email@abc.com" --password "xxx-x-xxxx-xx" --file Plugin.zip

收到一封电子邮件,表明它已成功公证,并且电子邮件中有 instructions 关于如何导出以进行分发的信息。但是,这是 XCode UI 的说明,但我通过命令行进行了公证,因此这些说明不适用于我。是否有下载公证文件 (Plugin.zip) 的命令行,或者我如何从 Apple 获取 Plugin.zip 文件以在我的网站上分发它?

更新:

事实证明,您可以公证 .zip 文件,但不能装订它。所以我决定创建一个 .pkg 来分发我的插件,而不是通过 zip 文件分发。

这是我成功公证和装订我的插件所遵循的步骤,假设我的插件名称是 FileConvertor.PluginExtension

  1. 对要包含在安装程序中的二进制文件进行代码签名。 codesign --sign "Developer ID Application: Developer Name" --verbose=4 --deep --force --strict FileConvertor.PluginExtension
  2. 创建安装程序 (.pkg) 添加上面签名的代码 .PluginExtension
  3. 现在使用安装程序证书为您的安装程序签名。 productsign --sign "Developer ID Installer: Developer Name" ./FileConvertor.pkg ./FileConvertorSigned.pkg
  4. 发送签名的安装程序进行公证xcrun altool --notarize-app --primary-bundle-id "com.demo.plugin" --username xyz@abc.com" --password "xxxx-xxxx-xxxx-xxxx" --file FileConvertorSigned.pkg
  5. 如果公证成功,请装订您的安装程序xcrun stapler staple FileConvertorSigned.pkg
  6. 在网络上分发您的安装程序

您不从 Apple 下载您的 plugin.zip - 只需使用您最初上传给他们的相同存档。您是真正将公证单钉在您要公证的任何东西上的人。

我自己还没有用 .zip 尝试过,但这是从文档中拼凑出来的过程。

Notarizing Your App Before Distribution 说:

Notarize Your Preexisting Software

[...]

  1. Upload your software to the Apple notary service, as described in Upload Your App to the Notarization Service.

您已经完成了这一步。

  1. Staple the returned ticket to your existing software, as described in Staple the Ticket to Your Distribution.

您必须将公证票附加到您分发的任何内容上,这样 Gatekeeper 即使没有网络连接也能找到它。通常您使用 stapler 工具来执行此操作:

xcrun stapler staple MyApp.app

但是,订书机不支持 zip 文件。 Customizing the Notarization Workflow 说:

While you can notarize a ZIP archive, you can’t staple to it directly. Instead, run stapler against each individual item that you originally added to the archive. Then create a new ZIP file containing the stapled items for distribution.

所以;针对其中包含的每个项目展开 .zip 和 运行 stapler staple {filename}。然后创建装订内容的新 .zip 存档。

Apple 不会return 任何来自公证的内容。您签名的文件在签名中有一个唯一的 ID,Apple 已存储该 ID。公证后,如果下载,则接受签名文件。