是否可以从非Mac平台构建.dmg文件(用于分发应用程序)?如果是,怎么样?
是的,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并安装在那里.
我工作的项目使用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
如果你想成为真正看中的,你可以窃取.DS_Store
从DMG文件在Mac上做出了卷名progname
叫做和应用程序包progname.app
(即,匹配您要创建离开苹果什么的),你已经把背景.background/background.png
和根目录中的/ Applications的符号链接,并将其dmgdir
与您自己的符号链接一起放入/Applications
.
似乎可以使用一些第三方工具创建DMG文件.快速谷歌搜索显示至少一些商业工具:
TransMac
MagicISO
不确定任何OSS /免费软件选项,但如果你这么倾向,它至少看起来是可能的.
编辑:我也忘记了MacDrive,这是在Windows下使用HFS +文件系统的另一个很棒的工具.由于DMG基本上只是一个HFS +文件系统快照,因此MacDrive也可以创建DMG.
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
未压缩的工作开箱即用,压缩可能会导致问题 - 起源/主人至少会对雪豹产生'校验和'错误