如何打包Mac OS应用程序以进行安装?

时间:2011-08-10 16:39:43

标签: macos installer

我知道在Windows上有一些可用于创建安装程序的安装程序工具,但在Mac OS上我看到了两种安装应用程序的方法:

  1. 您下载,双击然后在里面运行应用程序的DMG文件 - 应用程序通常会将图标拖到另一个图标(代表Applications文件夹)以安装应用程序

  2. 另一种启动明显标准安装程序的文件,有时会出现“此安装程序可能运行程序以确定您是否可以继续安装”的警告

  3. 在Mac OS上安装应用程序的“标准”打包方式是什么?以上是苹果推荐的方式之一吗?

    感谢。

5 个答案:

答案 0 :(得分:17)

Apple非常清楚地制定从App Store下载程序的“标准”。这样做的好处是使应用程序安装对普通用户透明。并且,不管你信不信,普通人对安装程序的概念有很多麻烦。当然,这种好处需要一些成本,但这不是辩论的地方 - 还有很多其他的地方。

假设您不想或不能使用App Store路线,PKG和DMG都是分发程序的常用方法。如果您需要安装除应用程序包之外的文件(这不应该是常见用例),请使用PKG。在所有其他情况下,使用DMG提示用户将应用程序复制到Applications文件夹中。但是很多用户不会理解他们需要这样做(除非您的目标受众只是知识渊博的计算机用户)。他们将从磁盘映像运行您的应用程序。理想情况下,在这种情况下,您的程序将检测到它是从磁盘映像运行并提供将其自身复制到Applications文件夹中。

答案 1 :(得分:12)

套餐效果很好。如果您的部署过程必须简单,那就太棒了。

Quick build包括将您的.app拖到Package上并完成。

对于高级包装,您还可以提供证书。

http://s.sudre.free.fr/Software/Packages/about.html

答案 2 :(得分:8)

我们正在讨论两件事:

  • 首先也是最重要的一种标准方法,通过这种方法,可执行文件的位以一种可由系统访问和正确注册的方式放置在磁盘上
  • 第二,按照Apple推荐的方式准备.app的机制

Apple's site上较旧的营销页面表示建议使用PackageMaker应用程序创建包(因此安装程序应用程序可以将位移动到位)。 其用法如下所述:mactech.com/articles/mactech/Vol.25/25.03/2503MacEnterprise-PackagingforSystemAdministrators/index.html。

但正如其他人所说,房间里的大象是MacAppStore(简称MAS)。在它首次亮相之前,大型公司的标准是将自己的自定义脚本转换为旧式“捆绑”包或使用像VISE安装程序这样的可执行文件。较小的开发人员通常试图通过拖放操作使其应用程序可安装,分布在zip存档或磁盘映像中(为简单起见)。 MAS是不同的:从10.7开始,它使用一种封装格式(在10.5中首次亮相)称为扁平封装(实际上是一个xar存档,解释here) 通过http传输到隐藏文件夹,直接安装到应用程序(之后删除它下载的临时文件夹)。它将收据和账单或材料文件丢弃到/ private / var / db中,因此可以通过内置命令行pkgutil工具进行审计,如下所述:mactech.com/articles/mactech/Vol.25/25.12 /2512MacEnterprise-PackagesReceiptsandSnow/index.html

使用扁平包格式的一个好处是,您可以更安全,更有效地通过网络提取内容,但如果您定期测试和修改包,或者迭代到包,那么使用捆绑包并不容易。确保执行操作或检查的脚本运行良好。即使是扁平状态,建议将pkg放入存档或磁盘映像中以提高灵活性。更多的分发工具需要DMG而不是zip,所以也是如此。

除了Apple推荐的内容以及标准的常见做法之外,还有这篇文章:https://www.afp548.com/2010/06/03/the-commandments-of-packaging-in-os-x/讨论了为什么和包装(尽管主要是系统管理员)进行更广泛的分发。我们强烈建议您更多地了解出现问题的方式和原因,以及应避免的事项。

答案 3 :(得分:6)

试试Iceberg! 另一个包创建者。

答案 4 :(得分:3)

在OS X中,许多应用程序只是作为Relocatable创建的 用户只需要复制到的应用程序包 / Application文件夹(或任何其他位置)。在其他情况下,当你 需要在机器上执行某些操作(例如添加用户) 或者更改权限)您可以使用允许的PKG安装程序(例如使用PackageMaker构建) 执行一些安装前和安装后的脚本并支持一些基本的 安装配置,例如选择安装驱动器。

有时,与复杂的服务器软件一样,您需要更多的灵活性,例如向自定义页面显示 最终用户请求安装您的信息所需的信息 应用程序,如MySQL端口和密码或代理信息 即时下载要求(或简单地让它看起来更漂亮 :))。对于这种情况,还有其他安装程序解决方案,例如我们的BitRock InstallBuilder(免责声明,我是其中一位开发人员)。 InstallBuilder还具有生成多平台的优势 安装程序使用相同的项目,每个定制很少 平台。