Как создать файл dmg Mac OS X (на платформе не Mac)? - PullRequest
51 голосов
/ 13 ноября 2008

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

Ответы [ 7 ]

34 голосов
/ 23 сентября 2010

Да, 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 и смонтировать там.

28 голосов
/ 26 сентября 2011

Проект, над которым я работаю, создает файлы 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 и символическую ссылку на / Applications в корневом каталоге, и поместили его в dmgdir вместе с вашей собственной символической ссылкой на /Applications.

8 голосов
/ 19 июля 2013
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, по крайней мере, выдает ошибку "контрольной суммы" на снежном барсе

8 голосов
/ 13 ноября 2008

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

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

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

4 голосов
/ 03 июня 2013

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

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


Даунсайд

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

2 голосов
/ 10 сентября 2010

См. Mkfs.hfsplus

0 голосов
/ 13 ноября 2008

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

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

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

...