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

时间:2008-11-13 07:17:45

标签: macos installer dmg

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

7 个答案:

答案 0 :(得分:34)

是的,mkfs.hfsplus是这样做的。

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

这会创建一个可以安装在mac上的dmg文件(在本例中为64M)。它也可以安装在linux上,类似

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

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

答案 1 :(得分:28)

我工作的项目使用genisoimage在Linux上创建DMG文件:

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 

如果您想要真正喜欢,可以从Mac上制作的.DS_Store文件中窃取progname文件,其中卷名为progname.app,应用包名为.background/background.png(即匹配您想要在Mac上创建的内容,您在dmgdir中放置了一个背景,并在根目录中添加了/ Applications的符号链接,并将其与您自己的符号链接一起放在/Applications中到{{1}}。

答案 2 :(得分:8)

似乎可以使用某些第三方工具创建DMG文件。快速谷歌搜索显示至少一些商业工具:

不确定任何OSS /免费软件选项,但如果你这么倾向,它至少看起来是可能的。

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

答案 3 :(得分:8)

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

生成文件:

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

未压缩的工作开箱即用,压缩可能会导致问题 - 起源/主人至少会对雪豹产生'校验和'错误

答案 4 :(得分:4)

我不确定是否还有人在看这个帖子,但我按照 Nik Reiman 的推荐尝试了 TransMac

使用此工具,我能够在 Windows 7 上运行,创建 dmg 文件,这些文件可以安装在 OSX 10.8.3 上。< / p>


<强>下行

我们唯一的缺点是这个工具似乎不是命令行友好的;对我们而言,这是一个交易破坏者,因为我们需要能够拥有一个自动化工具,我们的构建服务器(基于Windows)可以使用它来动态构建dmg文件。

答案 5 :(得分:2)

见mkfs.hfsplus

答案 6 :(得分:-28)

如果您正在分发Mac应用,那么您肯定有一台Mac可以编写和测试它们。为什么不简单地使用相同的Mac来创建磁盘映像?

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

我想我得到的是,我不明白人们可能需要一个DMG磁盘映像,但没有Mac用于创建它。