18

通过查看即将发布的 OSX 版本(OSX Lion 之后的版本)的注释,似乎所有 DMG/安装程序都需要签名,即使不是通过 Mac App Store 分发。

不过,我找不到执行此签名的命令行工具,也找不到很多关于在不提交到 App Store 的情况下获得签名证书的文档。

有人可以阐明:1)如何在不通过Mac App Store分发您的应用程序的情况下获得证书?2)如何在不使用内置XCode工具(最好是跨平台工具)的情况下签署DMG?

谢谢!

4

3 回答 3

4

在这里这里详细描述了协同设计- 基本上你需要获得一个证书然后你可以签署你的应用程序...... AFAIK目前没有关于签署DMG本身的官方文档。至于您的第二个问题(跨平台签名),没有这样的工具可用(至少没有苹果官方支持的工具)。至于有关未来 OS X 版本的信息,我强烈建议您在适当的 Apple 论坛上询问(通常也有与 NDA 相关的论坛)。

于 2012-04-14T08:13:01.487 回答
4

这非常简单:

CODESIGN_IDENTITY='Name of Code Sign Cert' # Found in Keychain Access

codesign -s "$CODESIGN_IDENTITY" -v path/to/YourApp.app

然后在dmg上:

codesign -s "$CODESIGN_IDENTITY" -v path/to/YourApp.dmg

这甚至适用于像 UDZO 这样的只读 DMG。

于 2014-01-02T10:50:53.447 回答
2

签署磁盘映像(来源:Apple

可以使用 macOS 10.11.5 及更高版本上的协同设计工具对磁盘映像进行签名。这允许 Gatekeeper 在首次挂载时验证整个磁盘映像。

Gatekeeper 也将验证磁盘映像的内容。

磁盘映像只能使用您的 Developer ID 应用程序身份进行签名。

在 macOS Sierra 及更高版本上,spctl可用于评估磁盘映像的签名,如下所示:

$ spctl -a -t open --context context:primary-signature -v MyImage.dmg /Users/me/Downloads/MyImage.dmg: 接受源=开发者 ID

注意:在 OS X 10.11.5 或 10.11.6 上签名的磁盘映像可能无法重新签名。在这种情况下,操作会看似成功,但签名无效。如果您遇到这种情况,请在 macOS Sierra 或更高版本上签署一份新的(未签名的)图像副本。

于 2016-08-19T09:54:50.943 回答