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

StackOverflow https://stackoverflow.com/questions/286419

  •  08-07-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

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

Редактировать:Я также забыл о 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 и символическую ссылку на / Applications в корневой каталог и поместите его в 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

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

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

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


Обратная Сторона

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

См. mkfs.hfsplus

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top