我需要公证应用程序和 dmg 图像吗?

Try*_*gve 7 macos notarize

我有一个应用程序,它经过签名、公证和装订,然后存档到一个 zip 文件中,该文件用作我的 Sparkle 更新程序的对象。

我还将它分发给新用户的 DMG 图像(并且是我网站上的主要下载)。我可以将经过公证/装订的应用程序放在 DMG 上,还是需要对 DMG 文件进行单独的公证和装订过程?

Hej*_*azi 7

您只需对应用程序进行一次公证:

  1. 使用签名的应用程序创建 DMG 文件。
  2. 签署、公证并装订 DMG 文件。
  3. 打开 DMG 文件并将应用程序复制到外部。将其装订并为 Sparkle [1]创建存档。

要确认应用程序经过公证,请运行以下命令:

spctl -a -t exec -vv MyApp.app

你会看到类似的东西:

MyApp.app: accepted
source=Notarized Developer ID
origin=Developer ID Application: Name (ID)
Run Code Online (Sandbox Code Playgroud)

(注意来源是“ Notarized Developer ID”)

您还可以通过运行以下命令来确认票证已装订:

xcrun stapler validate MyApp.app

你会看到这条消息:

Processing: /path/to/MyApp.app
The validate action worked!
Run Code Online (Sandbox Code Playgroud)

对 DMG 文件进行公证就足够了,因为公证服务会对磁盘映像内的任何应用程序进行公证。来自苹果文档

或者,您可以将应用程序、内核扩展和其他软件放入容器(例如磁盘映像)中,并对容器进行公证。公证服务接受磁盘映像(UDIF 格式)、签名的平面安装程序包和 ZIP 存档。它也处理嵌套容器,就像磁盘映像内的包一样。


[1] 您也可以使用 Sparkle 的 DMG 文件。无需第二个存档。来自Sparkle 文档

Sparkle 支持从DMG、ZIP 存档、tarball 和安装程序包进行更新,因此您通常可以重复使用相同的存档在网站上分发应用程序以及 Sparkle 更新。


ToF*_*oFi 5

根据我在 Apple 文档中读到的内容(请参阅下面的引用)以及我使用我的应用程序和其他应用程序的经验,只需对 DMG 进行公证就足够了。您不必先对应用程序进行公证...

“例如,如果您提交的磁盘映像包含已签名的安装程序包,其中包含应用程序包,则公证服务会生成磁盘映像、安装程序包和应用程序包的票证。”

https://developer.apple.com/documentation/xcode/notarizing_macos_software_before_distribution/customizing_the_notarization_workflow#3087734


Ric*_*ber 4

您必须压缩应用程序,发送 zip 进行公证,然后装订原始应用程序。然后使用装订的应用程序制作 dmg,压缩 dmg,发送进行公证,装订 dmg,然后分发。