Можно ли создать файл .dmg(для распространения приложений) с платформы, отличной от Mac? И если да, то как?
Как создать файл dmg Mac OS X (на платформе, отличной от Mac)?
Ответ 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, чтобы его создать.