如何在mac中添加代码签名到dmg文件

时间:2014-05-23 08:50:51

标签: macos dmg

我的门户网站上有一个dmg文件。下载后,当我尝试打开它时会显示一条消息,指示打开包是不安全的。我可以使用codesign命令通过命令行添加代码签名,并且还能够检查是否添加了代码。但仍然当我点击打开我的dmg文件不安全的消息即将到来

3 个答案:

答案 0 :(得分:21)

从macOS 10.11.5开始,您现在可以使用.dmg工具对磁盘映像codesign,文件进行签名:

codesign -s <identity> --keychain <full-path-to-keychain> <path-to-disk-image>

答案 1 :(得分:11)

有3种方法可以做到这一点。在OS X 10.11.5或更高版本的终端中。 注意:您可以在早期操作系统版本上编码签名DMG,但Sierra只喜欢10.11.5或更新版本。

codesign --force --sign "Developer ID Application: <identityIdentifier>" <pathToDMG>

验证通过(需要macOS Sierra)完成。

spctl -a -t open --context context:primary-signature -v <pathToDMG>

Araelium更新了DMG Canvas(v2.3),因此它会在构建时对DMG进行编码。

DropDMG已更新为代码签名DMG图像文件(v3.4)。

还有(我开发的工具)名为App Wrapper(3.6),它可以编码签名DMG文件。

答案 2 :(得分:6)

之前我很难在10.11.5上对sign dmg进行编码,即使这个命令codesign -s <identity> <path-to-disk-image>已为我所知。

我之前做的是

  1. 创建读/写DMG(使用磁盘工具创建)
  2. 复制应用和其他外部资源
  3. 使用codesign命令签署DMG代码
  4. 使用“磁盘工具”将其转换为只读DMG
  5. 使用spctl -a -t open --context context:primary-signature <path-to-disk-image>验证,导致拒绝。
  6. 然后几个排列和组合,我发现它很容易直接解决方案:

    1. 创建读/写DMG(使用磁盘工具创建)。
    2. 复制应用和其他外部资源
    3. 使用“磁盘工具”将其转换为只读DMG
    4. 代码使用codesign命令签署DMG(这次我在Sierra上做了,很可能应该使用10.11.5)
    5. 使用spctl -a -t open --context context:primary-signature <path-to-disk-image>验证,结果是成功。
    6. 我希望这适合你。 :)