PackageMaker用于在Windows / Linux上创建Mac包

时间:2010-02-24 05:09:47

标签: macos packagemaker

我们需要动态构建Mac软件包,如果有办法在Windows或Linux平台上创建相同的软件包而不是在Mac上使用PackageMaker,那将会很方便。有什么想法吗?

2 个答案:

答案 0 :(得分:18)

我不同意这是不可能的。您当然可以在另一个操作系统上完成PackageMaker在OSX上所做的所有事情。这只是创建这些文件的问题:

Contents/
  Archive.bom
  Archive.pax.gz
  Info.plist
  PkgInfo
  Resources/
    TokenDefinitions.plist
    package_version
    en.lproj/
      Description.plist

可以使用 plistlib 在Python中轻松创建.plist文件,这是Python中的标准。 .bom和.pax.gz有点棘手,但其余的都是文本文件。

.pax.gz文件的.gz部分表示它是使用gzip压缩的。这可以在Windows和Linux上使用。

根据pax man page,pax文件实际上可以采用多种不同的存档格式,包括 cpio tar ,在Linux或Windows中也很容易。 PackageMaker似乎创建了压缩的 cpio 文件,至少在10.6上。

.bom文件是包中所有文件及其大小的列表。它可能是在OSX之外创建最难的部分。 BOM代表物料清单,来自NextSTEP操作系统。我无法找到有关BOM格式的更多信息,但这里有一些线索:NextSTEP bom man pageOSX bom man page

编辑:我现在已经实现了 lsbom 的版本,我将其置于公共域中。代码可以在Subversion中找到:https://cauldrondevelopment.com/svn/osxbom/trunk

也许有人也可以实施 mkbom ,然后会有一个完整的解决方案。请参阅上面代码中的头文件 bom.h ,以获得有关BOM文件格式的完整描述。

编辑2: mkbom 的工作版现已实施,可在此处找到: https://github.com/hogliux/bomutils

以及有关如何在linux上创建安装程序的详细教程: http://hogliux.github.io/bomutils/tutorial.html

另请参阅问题how-to-build-native-mac-os-x-installer-on-a-non-mac-platform

答案 1 :(得分:0)

不,你不能。您可以使用osascript执行脚本化ssh登录并将其关闭,这样您就可以从其他地方自动化整个构建,但是您只能在Mac上构建Mac。

但是,您可以在Mac上执行所有构建。这种方式更容易。