Как создать файл dmg Mac OS X (на платформе, отличной от Mac)?

можно ли построить .dmg-файл (для распространения приложений) с платформы, отличной от Mac? И если да, то как?

7 ответов


кажется возможным создавать файлы DMG с помощью некоторых сторонних инструментов. Быстрый поиск Google показывает, по крайней мере, несколько коммерческих инструментов:

Не уверен в каких-либо вариантах OSS/freeware, но это, по крайней мере, кажется возможным, если вы так склонны.

Edit: я также забыл о MacDrive, что является еще одним отличным инструментом для работы с файловыми системами HFS+ под Windows. Поскольку DMG-это в основном снимок файловой системы HFS+, возможно, с помощью MacDrive можно также создать DMG.


да, mkfs.hfsplus это делает.

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

это создает файл dmg (в данном случае 64M), который может быть установлен на mac. Он также может быть установлен на linux, с чем-то вроде

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

после того, как вы просто скопируете контент, который хотите (в /mnt / foo). Размонтируйте его, и dmg можно скопировать на mac и установить там.


проект, над которым я работаю, создает файлы DMG в Linux с помощью genisoimage:

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 (т. е. соответствие тому, что вы хотите создать с Mac), где вы поместили фон в .background/background.png и символическая ссылка на / приложения в корневом каталоге, и поместите это в 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

несжатые работы из коробки, сжатие может вызвать проблемы-origin / master по крайней мере производит ошибку контрольной суммы на snow-leopard


см. mkfs.hfsplus


Я не уверен, что кто-то все еще смотрит эту тему, но я попытался TransMac как было рекомендовано Ник Рейман.

используя этот инструмент, я смог, запустив Windows 7, create dmg файлов, которые были установлены на OSX 10.8.3.


минус

единственным недостатком для нас является то, что этот инструмент не кажется дружественным к командной строке; для нас это deal-breaker, поскольку нам нужно иметь автоматический инструмент, который наш сервер сборки (на основе Windows) может использовать для создания файлов dmg на лету.


Если вы распространяете приложения Mac, то, конечно, у вас есть Mac, чтобы писать и тестировать их. Почему бы просто не использовать тот же Mac для создания образа диска?

[Edit] альтернативно, если вы распространяете портативное приложение, например Java .jar-файл, зачем нужен образ диска? Маки понимают .zip и .смола.архивы gz в порядке.

Я думаю, что я имею в виду, я не понимаю, как может потребоваться образ диска DMG, но не иметь Mac для создания он.