84

我已经为 Mac OS X 制作了我的第一个 Qt 应用程序。现在我想创建一个不错的 .dmg 文件,让用户可以轻松地安装它。我正在考虑类似firefox的东西(见图): 在此处输入图像描述

我对此完全陌生,所以我什至不知道从哪里开始。

4

6 回答 6

96

通过提供此答案来更新此问题。

appdmg是一个简单易用的开源命令行程序,它从简单的 json 规范创建 dmg 文件。看看官网的readme:

https://github.com/LinusU/node-appdmg

快速示例:

  1. 安装 appdmg

    npm install -g appdmg
    
  2. 写一个 json 文件 ( spec.json)

    {
      "title": "Test Title",
      "background": "background.png",
      "icon-size": 80,
      "contents": [
        { "x": 192, "y": 344, "type": "file", "path": "TestApp.app" },
        { "x": 448, "y": 344, "type": "link", "path": "/Applications" }
      ]
    }
    
  3. 运行程序

    appdmg spec.json test.dmg
    

(免责声明。我是 appdmg 的创建者)

于 2013-11-15T03:49:09.367 回答
20

这相当容易 - 基本思想是您使用磁盘工具创建一个空白图像(使其足够大以至少容纳您的东西 - 确切大小无关紧要),使用Finder打开该图像,放入您的东西并安排它您想要的方式(使用右键单击和显示视图选项来设置图标大小或背景图像等内容)。差不多就是这样 - 剩下的就是将该 r/w 图像转换为压缩图像:将其弹出并使用“磁盘工具”中的“转换”将其转换为压缩图像。

于 2011-12-31T00:56:47.467 回答
9

现有的答案都没有真正对我有用。一个答案是手动的,另外两个选项 - iDMG 和 node-appdmg - 都涉及对不理想的查找器进行 AppleScripting。

作为自动构建步骤执行此操作的最佳方法是创建一个看起来完全符合您要求的 template.dmg(按照正常说明,例如 Simon Urbanek 的回答,但不执行压缩它的最后一步),然后在您的构建中脚本:

  1. 使用 hdiutil 附加图像
  2. 使用 cp 等将应用程序复制到挂载的映像中
  3. hdiutil 分离
  4. 压缩图像:hdiutil convert "in.dmg" -quiet -format UDZO -imagekey zlib-level=9 -o "MyApp-0.3.dmg"

在https://github.com/remko/fancy-dmg/有一个包含这些步骤的生成文件。

于 2013-11-25T13:54:48.953 回答
4

此脚本使 DMG 生成非常容易:https ://github.com/andreyvit/create-dmg

也没有节点依赖:-)

于 2015-04-21T17:16:13.157 回答
2

你可以用 Finder 做到这一点:

  1. 下载并解压这个空的 DMG 文件(我是创建和上传它的人)
  2. 将 DMG 文件调整为适当的大小(适当的大小通常是其当前大小加上 .app 文件的大小)。为此,请打开磁盘实用程序(如果您不知道如何执行此操作,请disk utility在 Launchpad 中搜索)。然后单击菜单栏中的“图像”并选择“调整大小...”。您将获得一个打开文件的窗口,打开空的 DMG 文件。
  3. 双击 DMG 文件以安装它。Untitled桌面上应该会出现一个名为的设备。将其重命名为您想要的名称(您可能希望将其命名为与您的程序相同的名称)。
  4. 打开那个设备。您应该看到如下内容:

    在此处输入图像描述

    如果除了“应用程序”文件夹的快捷方式之外的所有内容都是白色的,请按Cmd+J并打开一个窗口。在该窗口的底部,有一个带有“将图像拖到此处”标签的正方形。单击该方块,将打开一个打开对话框。在该对话框中,按Cmd+ Shift+G并键入并选择 image.png。/Volumes/(whatever you called the device in step 3)/.image

    除了应用程序文件夹的快捷方式之外,这里的所有内容都只是背景图像。您可能想要更改背景图像(包含背景颜色和箭头)。为此,请在图像编辑器中打开文件并将其编辑为您想要的任何内容。完成此操作后,您可能需要卸载设备并通过打开 DMG 文件来重新安装它以查看更改。根据您在图像中放置的内容,您可能还需要将快捷方式移动到 Applications 文件夹以适应新的背景图像。/Volumes/(whatever you called the device in step 3)/.image/image.png

  5. 将您的 .app 文件拖到打开 DMG 文件中的设备的窗口中箭头的开头,使其看起来像这样:

    在此处输入图像描述

    您可能会收到一条错误消息,指出没有足够的可用空间。如果是这种情况,请返回第 2 步并将 DMG 文件调整为更大的大小。

  6. 通过单击 Finder 中设备名称旁边的箭头来卸载设备:

    在此处输入图像描述

  7. 将 DMG 文件转换为只读。为此,请打开终端并键入以下内容(替换/path/to/dmg/file为 DMG 文件的路径和 DMG 文件nameOfDmgFile.dmg的名称):

    cd /path/to/dmg/file
    hdiutil convert -format UDZO -o newNameOfDmgFile.dmg nameOfDmgFile.dmg
    

    这将创建一个名为newNameOfDmgFile.dmg(或您在上面使用的任何其他名称)的新 DMG 文件,这是您想要的文件。

于 2017-11-02T11:53:59.790 回答
0

您可以为此使用磁盘工具,但如果您想要背景图片,则需要一些高级说明。

首先,打开磁盘工具
然后,单击文件 > 新图像 > 空白图像。
它会询问你它的大小和名称。
之后,您可以将文件放入其中,然后就可以了!

注意:这是在 Mac OS Mojave 上测试的。我不知道以前的版本。

于 2018-12-19T20:58:35.873 回答