Macos 打包用于分发的Mac应用程序

Macos 打包用于分发的Mac应用程序,macos,dmg,Macos,Dmg,为Mac OS创建可分发文件的首选方法是什么:dmg或pkg?如果安装像拖放一样简单,请使用磁盘映像,如果需要在应用程序包之外安装支持文件,请使用软件包安装程序 还请注意,对于磁盘映像,如果用户从映像运行程序,则最好为用户安装应用程序。否则,有些人将永远不会真正安装该程序,而只是永久保留磁盘映像。我认为没有固定的答案。如果您只有一个应用程序包,我认为大多数最终用户都希望有一个DMG。但是,如果要安装菜单扩展名,或者需要在库目录中的任何其他内容,通常需要一个pkg文件 我在不同类型的安装中都使用了

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

如果安装像拖放一样简单,请使用磁盘映像,如果需要在应用程序包之外安装支持文件,请使用软件包安装程序


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

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


我在不同类型的安装中都使用了这两种方法。他们都工作。只要你使用这两个应用程序中的一个(而不是某种古怪的安装脚本),人们就会很高兴IMHO。

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

除非必须,否则不要使用安装程序。

拉链的优点:

  • Safari自动解开拉链
  • 易于创建
  • 更易于使用更新程序
DMG的优点:

  • 可用于显示许可证汇总
  • 可以显示安装说明()
不要使用.pkgs,除非您需要将包放在特定位置。(WebKit捆绑包、内核扩展…

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

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

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


这样,如果你使用需要拖动到/Apple文件夹中的应用程序的磁盘映像的路径,强烈地考虑用户是否正在从磁盘映像中运行应用程序,并提供给它们的移动!你的用户和你的支持人员会感谢你。))实际上,偏好窗格不需要任何安装程序;如果磁盘映像上有一个pref窗格,用户双击它,OSX就足够聪明,知道需要安装它,甚至会询问用户是应该为所有用户安装还是只为登录的帐户安装(/Library/Preference Panes/或~/Library/Preference Panes/)。我同意你的评论。但让我们现实一点,其中许多确实包括安装程序。我将编辑我的回复——我试图思考需要PKG的东西。我希望将Sparkle集成到我正在编写的Mac应用程序中。但我也喜欢走dmg路线。当谈到Sparkle集成时,使用DMG有什么缺点吗?