Как создать файл 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
Я не уверен, что кто-то все еще смотрит эту тему, но я попытался TransMac как было рекомендовано Ник Рейман.
используя этот инструмент, я смог, запустив Windows 7, create dmg файлов, которые были установлены на OSX 10.8.3.
минус
единственным недостатком для нас является то, что этот инструмент не кажется дружественным к командной строке; для нас это deal-breaker, поскольку нам нужно иметь автоматический инструмент, который наш сервер сборки (на основе Windows) может использовать для создания файлов dmg на лету.
Если вы распространяете приложения Mac, то, конечно, у вас есть Mac, чтобы писать и тестировать их. Почему бы просто не использовать тот же Mac для создания образа диска?
[Edit] альтернативно, если вы распространяете портативное приложение, например Java .jar-файл, зачем нужен образ диска? Маки понимают .zip и .смола.архивы gz в порядке.
Я думаю, что я имею в виду, я не понимаю, как может потребоваться образ диска DMG, но не иметь Mac для создания он.