Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

Ответ 3

Проект, над которым я работаю, создает файлы 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.

Ответ 4

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

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

Ответ 5

Смотрите mkfs.hfsplus

Ответ 6

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

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


Даунсайд

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

Ответ 7

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

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

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