如何构建原生Mac OS X安装程序(在非Mac平台上)?

时间:2008-11-12 10:08:53

标签: macos installer dmg

如何在非Mac平台上为我的应用程序构建本机Mac OS X安装程序?

例如,我有一个Windows PC和一个Java应用程序。我希望windows pc能够构建一个与Apple安装程序一起使用的安装程序(可能在.dmg存档中)。

7 个答案:

答案 0 :(得分:4)

现在可以在非Mac平台上创建本机Mac OS X安装程序。作为Louis Gerbarg,棘手的一点是BOM(物料清单)文件。然而,mkbom的开源版本(基于Joseph Coffland的osxbom代码)现在可以在:

http://hogliux.github.io/bomutils

该网站还有一个关于在Linux上创建Mac OS X安装程序的简单分步教程(http://hogliux.github.io/bomutils/tutorial.html)。

我的公司使用这种方法定期在Linux上构建Mac OS X安装程序,到目前为止我们没有遇到任何重大问题。

答案 1 :(得分:2)

正如其他人已经指出的那样,你真的正在为这个问题采取硬解决方案,你的用户会诅咒你的名字,除非你有真的这样做的理由。确实,某些类型的应用程序需要Mac OSX的安装程序。这些通常包括:

  • 安装自定义驱动程序的应用程序(即内核扩展)
  • 需要安装框架或其他资源的应用程序,这些资源由于某种原因无法打包在应用程序包中
  • 需要作为系统服务运行的应用程序,因此必须运行一些安装后脚本才能在启动时启动应用程序
  • 编写得不好的程序需要对用户的系统进行某种类型的更改(即,设置文件夹或其他内容的权限),并且开发人员的手由营销部门负责人以最痛苦的方式分发应用程序< / LI>

好的,所以最后一点有点讽刺,但你能在这里漂流吗? :)基本上,如果您正在编写一个普通的最终用户应用程序,您应该以Mac用户期望的正常方式分发它,这是一个包含应用程序包的DMG文件。或者,如果您想要真正喜欢,请将别名粘贴到DMG内的“Applications”文件夹中,以帮助用户将程序拖到那里。除非您正在编写必须将安装到系统中的内容,而不是简单地系统运行,否则没有理由在此处使用安装程序。另外,请记住这是OSX,它已经包含一个功能齐全的Java JRE,因此您无需担心在安装程序或类似的东西中打包JRE。

既然您已经因为提出这个问题而受到了适当的责骂,我会假设您的软件属于上述类别之一而回答它。真的,你最好的选择是采用商业解决方案,例如VISE安装程序(再次,我可以自信地说明,绝大多数Mac用户在安装使用此工具制作的产品时会反恐),这样你就可以了在这里做你正在寻找的东西 - 基本上,制作一个跨平台的安装程序,它可以从一个安装程序文件中为你想要支持的各种平台构建。

然而,再次,你最好的选择是做那个平台的用户最熟悉的事情(这就是为什么你的问题的所有回复都敦促你不要做安装程序)。但是,这意味着,如果您真的必须制作安装程序,则应使用 - 跨平台框架;当用户使用标准的MSI安装程序时,Windows用户会感到最舒服,Mac用户会感觉到家中最常用的是Apple Installer pkg。但是,PackageMaker程序非常有限,所以如果必须,您应该使用iceberg代替。这对你来说意味着更多的维护,因为你需要在两个(或更多)单独的安装程序之后,但是如果你的软件真的太复杂而不需要这个,你应该愿意做出牺牲以获得舒适你的用户。

答案 2 :(得分:2)

很难在Windows上创建.dmg,但肯定可以创建一个.app文件结构,然后你可以压缩,正如其他评论所提到的那样。有时候普通的.pkg不会删除它,你想提供对话框,安装前检查等。你可以用BitRock installbuilder来做,你可以从mac,Linux,Windows,Solaris构建安装程序。每个其他平台。

答案 3 :(得分:1)

所以,有几个简单的问题。

首先,您为什么需要安装程序?大多数Mac用户更喜欢只是拖动安装的应用程序。如果您没有编写Mac OS X特定代码,很难想象您需要在特殊位置放置位,例如Application Support或LaunchDaemons。假设您拥有的所有内容都放在一个文件夹中,为什么还要使用安装程序呢?

其次,为什么在Mac上构建Mac安装程序会出现问题?当然你周围有一个macintosh来测试应用程序(你不是盲目地将它运送到Mac而不在Mac上测试它,对吗?)。

好的,说到这一点,假设你仍然有充分的理由在PC上实际构建它,那么有些东西并不容易。基本上.pkg是一堆文本脚本,本地化,存档文件(Archive.pax.gz)和物料清单(Archive.bom)。

假设构建之间没有太大的变化,您可以在Mac上制作安装程序,然后只需重建bom和pax.gz,将它们替换为现有的.pkg,并批量处理几个元数据。 pax应该很容易处理(pax是标准的归档格式),但是bom文件可能有点棘手,因为我不相信它是公开记录的,我怀疑创建它们的工具(mkbom)是达尔文的一部分(不是开源)。所以你需要弄清楚并编写一个自定义工具来创建bom文件。

换句话说,这可能是一项大量的工作。

答案 4 :(得分:0)

在Mac上安装应用程序的常用方法是将应用程序拖到应用程序文件夹中。大多数程序都是包含应用程序的DMG和指向应用程序文件夹的符号链接。你为什么要用其他方式呢?您需要认为Mac可以构建出色的Mac应用程序!外观非常重要,特别是对Mac用户而言。

答案 5 :(得分:0)

查看此代码以阅读BOM文件:https://cauldrondevelopment.com/svn/osxbom/trunk

答案 6 :(得分:-1)

将所有内容放入一个JAR文件中,将其添加到ZIP中。完成。

但严重的是,您是否希望将应用程序分发给Macintosh用户而不先测试它?你在哪个星球上??