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

Viv*_*k V 10 macos packagemaker

我们需要动态构建Mac软件包,如果有一种方法可以在Windows或Linux平台上创建相同的软件包而不是在Mac上使用PackageMaker,那将是很方便的.有任何想法吗?

jco*_*and 18

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

Contents/
  Archive.bom
  Archive.pax.gz
  Info.plist
  PkgInfo
  Resources/
    TokenDefinitions.plist
    package_version
    en.lproj/
      Description.plist
Run Code Online (Sandbox Code Playgroud)

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

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

根据pax手册页,一个pax文件实际上可以是几种不同的存档格式,包括cpiotar,在Linux或Windows中也很容易.PackageMaker似乎创建了压缩的cpio文件,至少在10.6上.

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

编辑:我现在已经实现了一个我放在公共领域的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

另请参阅非mac-platform上的how-to-build-native-mac-os-x-installer-problem问题.


And*_*gor -1

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

不过,您可以在 Mac 上完成所有构建。这样就容易多了。