首页 文章

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

提问于
浏览
49

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

7 回答

  • 8

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

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

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

  • 27

    是的,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并安装在那里 .

  • 2

    我工作的项目使用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上制作的DMG中窃取 .DS_Store 文件,其名称为 progname ,应用程序包名为 progname.app (即,匹配你要在Mac上创建的内容) .background/background.png 中的背景和根目录中的/ Applications的符号链接,并将其与 dmgdir 一起放入 /Applications 的符号链接 .

  • -28
    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
    

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

  • 2

    见mkfs.hfsplus

  • 8

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

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


    Downside

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

  • 33

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

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

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

相关问题