如何构build一个dmg Mac OS X文件(在非Mac平台上)?

是否可以从非Mac平台上构build.dmg文件(用于分发应用程序)? 如果是的话,怎么样?

用一些第三方工具创buildDMG文件似乎是可能的。 快速谷歌search至less揭示了一些商业工具:

  • TransMac
  • MagicISO

不确定任何OSS /免费软件的select,但如果你是这样倾向的话,至less看起来是可能的。

编辑:我也忘记了MacDrive ,这是在Windows下使用HFS +文件系统的另一个伟大的工具。 由于DMG基本上只是一个HFS +文件系统快照,因此MacDrive可能也可以创buildDMG。

是的,mkfs.hfsplus做到了。

dd if=/dev/zero of=/tmp/foo.dmg bs=1M count=64 mkfs.hfsplus -v ThisIsFoo /tmp/foo.dmg 

这将创build一个dmg文件(在这种情况下是64M),可以挂载在mac上。 它也可以挂载在Linux上,类似的东西

 mount -o loop /tmp/foo.dmg /mnt/foo 

之后你只需复制你想要的内容(在/ mnt / foo)。 卸载它,dmg可以复制到一个mac并安装在那里。

我正在使用genisoimage在Linux上创buildDMG文件:

 mkdir -p dmgdir/progname.app/Contents/{MacOS,Resources} ...copy your PkgInfo, Info.plist to Contents... ...copy your .icns to Resources... ...copy your other things to where you expect them to go... genisoimage -V progname -D -R -apple -no-pad -o progname.dmg dmgdir 

如果你想成为一个真正的幻想者,你可以从一个名为progname应用程序包和一个名为progname应用程序包(也就是说,将你想要从Mac创build的应用程序匹配到)的Mac上制作的DMG中,从DMG上制作.DS_Store文件。我们在.background/background.png放置了一个背景,并在根目录下的/ Applications中添加了一个符号链接,并将其放在dmgdir同时还附带了一个到/Applications的符号链接。

 git clone https://github.com/hamstergene/libdmg-hfsplus cd libdmg-hfsplus && cmake . && make && cd dmg ./dmg --help 

Makefile文件:

 dmg: genisoimage -D -V "$(PROJECT) $(VERSION)" -no-pad -r -apple -o project-$(VERSION)-uncompressed.dmg $(DARWIN_DIR) ./dmg dmg project-$(VERSION)-uncompressed.dmg project-$(VERSION).dmg 

未压缩的开箱即用,压缩可能会导致问题 – 起源/主人至less会在雪豹上产生“校验和”错误

请参阅mkfs.hfsplus

我不确定是否有人还在看这个post,但是我按照Nik Reiman的build议尝试了TransMac

使用这个工具,我能够在Windows 7上运行,创build可安装在OSX 10.8.3上的dmg文件。


下行

对我们来说唯一的缺点就是这个工具看起来并没有对命令行友好。 对我们来说,这是一个交易破坏者,因为我们需要能够有一个自动化的工具,我们的构build服务器(基于Windows)可以用来build立dynamic文件。

如果你分发的Mac应用程序,那么你肯定有一台Mac来编写和testing它们。 为什么不简单地使用相同的Mac创build磁盘映像?

[编辑]或者,如果您要发布便携式应用程序,例如Java .jar文件,为什么还要使用磁盘映像? Mac知道.zip和.tar.gz档案就好了。

我想我得到的是,我不明白如何可能需要一个DMG磁盘映像,但没有一个Mac来创build它。