我需要对应用程序和 dmg 映像进行公证吗?

问题描述 投票:0回答:4

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

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

macos notarize
4个回答
8
投票

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

  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)

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

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

xcrun stapler validate MyApp.app

您会看到这条消息:

Processing: /path/to/MyApp.app
The validate action worked!

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

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


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

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


6
投票

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

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

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


4
投票

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


0
投票

据我在 2024 年阅读Apple 文档了解到,人们需要对 DMG 以及应用程序进行公证。

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

重要:如果您通过自定义第三方安装程序分发软件,则需要两轮公证。首先,您对安装程序的有效负载(安装程序将安装的所有内容)进行公证。然后,您将经过公证的(并装订的,如将票证装订到您的发行版中所述)项目打包到安装程序中,并像对待任何其他可执行文件一样对其进行公证。如果您使用网络安装程序,请分别对安装程序及其下载的项目进行公证。

© www.soinside.com 2019 - 2024. All rights reserved.