打包Mac应用程序以进行分发

时间:2009-11-19 18:27:59

标签: macos dmg

为Mac OS创建可分发文件的首选方法是:dmg还是pkg?

5 个答案:

答案 0 :(得分:18)

关于磁盘映像(DMG)方法,通常以对用户明显需要将应用程序拖动到其/ Applications文件夹的方式实现。 (有时这是通过DMG上应用程序图标旁边的/ Applications文件夹的预先存在的别名来完成的,然后是背景图像,它们之间有一个箭头或文本说明重叠,说明了要做什么。)很多时候,但是,用户只需双击该应用程序并从磁盘映像运行它,这会让人感到困惑(如果他们弹出磁盘映像怎么办?下次他们尝试运行应用程序会发生什么?)

Mozilla Firefox开发人员之一Alexander Limi有两篇很棒的文章,介绍如何让您的OS X应用程序检测何时从安装程序磁盘映像运行,然后提供将自身复制到/ Applications文件夹。

这种方法现已被广泛接受,可以生成至少一个代码类M3InstallController,以便在您自己的应用中启用该行为。采用这种方法的另一个OS X应用程序的开发人员也发布了his own code example

因此,如果您使用需要拖动到/ Applications文件夹的应用程序转到磁盘映像的路径,请强烈考虑检测用户是否正在从磁盘映像运行应用程序,并提供为它们移动它!您的用户和支持人员会感谢您。 :)

答案 1 :(得分:7)

我认为没有一个固定的答案。如果你只有一个应用程序包,我想大多数最终用户都希望有一个DMG。但是如果你要安装菜单扩展 - 或者需要在Library目录中的任何其他内容,你通常需要一个pkg文件。

我已经将它们用于不同类型的安装。他们都工作。只要你使用这两个中的一个(而不是某种类型的古怪的安装脚本),人们会很高兴恕我直言。

答案 2 :(得分:3)

拉链的优点:

  • Safari自动解压缩
  • 易于创建
  • 更易于使用Sparkle更新程序

dmgs的优点:

  • 可用于显示许可证聚合
  • 可以显示安装说明(DMG Canvas

除非您需要将捆绑包放在特定位置,否则请勿使用.pkgs。 (WebKit捆绑,内核扩展......)

答案 3 :(得分:2)

Mac应用程序的趋势是一个不错的DMG,上面有可拖动安装的应用程序。或者甚至可能只是一个ZIPped应用程序,它知道如何在启动时将自身复制到用户的Applications目录。

除非绝对必要,否则请勿使用安装程序。

答案 4 :(得分:1)

如果您需要在应用包之外安装支持文件,则安装的磁盘映像就像拖放一样简单,包安装程序。

另请注意,对于磁盘映像,如果用户从映像运行程序,则最好为用户安装应用程序。否则,有些人永远不会真正安装程序,只是永远保留磁盘映像。