Jak zbudować plik dmg Mac OS X(na platformie innej niż Mac)?

Czy można zbudowaćplik dmg (do dystrybucji aplikacji) z platformy Nie-Mac? A jeśli tak, to w jaki sposób?

Author: michelemarcon, 2008-11-13

7 answers

Wydaje się, że możliwe jest tworzenie plików DMG za pomocą narzędzi innych firm. Szybkie wyszukiwanie w google ujawnia co najmniej kilka komercyjnych narzędzi:

Nie jestem pewien żadnych opcji OSS / freeware, ale przynajmniej wydaje się to możliwe, jeśli jesteś tak skłonny.

Edit: zapomniałem też o MacDrive , który jest kolejnym świetnym narzędziem do pracy z systemami plików HFS+ pod windows. Ponieważ DMG to w zasadzie tylko HFS+ migawka systemu plików, prawdopodobnie jest możliwe z MacDrive do tworzenia DMG, jak również.

 8
Author: Nik Reiman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-13 10:15:22

Tak, mkfs.hfsplus to robi.

dd if=/dev/zero of=/tmp/foo.dmg bs=1M count=64
mkfs.hfsplus -v ThisIsFoo /tmp/foo.dmg
Tworzy to plik dmg (w tym przypadku 64M), który można zamontować na komputerze mac. Może być również montowany na Linuksie, z czymś w rodzaju
mount -o loop /tmp/foo.dmg /mnt/foo

Po tym, jak skopiujesz zawartość, którą chcesz do niej (w /mnt / foo). Odmontuj go, a dmg może zostać skopiowane na Maca i zamontowane tam.

 33
Author: jstck,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-23 08:14:24

Projekt, nad którym pracuję tworzy pliki DMG na Linuksie przy użyciu 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 

Jeśli chcesz być naprawdę elegancki, możesz ukraść plik .DS_Store z DMG zrobionego na komputerze Mac z nazwą woluminu progname i pakietem aplikacji o nazwie progname.app (tzn. pasującym do tego, co chcesz utworzyć poza komputerem Mac), w którym umieściłeś tło w .background/background.png i dowiązanie symboliczne do /aplikacji w katalogu głównym, i umieścić je w dmgdir wraz z własnym dowiązaniem symbolicznym do /Applications.

 24
Author: uckelman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-22 20:41:00
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

Nieskompresowana działa po wyjęciu z pudełka, kompresja może powodować problemy - origin / master przynajmniej generuje błąd sumy kontrolnej na snow-Leopardzie

 8
Author: name,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-18 22:55:05

Patrz mkfs.hfsplus

 2
Author: Josh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-10 18:18:11

Nie jestem pewien, czy ktoś jeszcze ogląda ten wątek, ale próbowałem TransMac zgodnie z zaleceniami Nika Reimana .

Za pomocą tego narzędzia mogłem, uruchamiając na Windows 7, utworzyć dmgpliki, które można montować na OSX 10.8.3.


Downside

Jedynym minusem dla nas jest to, że to narzędzie nie wydaje się być przyjazne dla linii poleceń; dla nas jest to łamanie umowy, ponieważ musimy mieć zautomatyzowane narzędzie, które nasz serwer kompilacji (oparty na systemie Windows) może służyć do tworzenia plików dmg w locie.

 2
Author: MattWeiler,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-03 17:27:38

Jeśli dystrybuujesz aplikacje na Maca, to na pewno masz Maca do pisania i testowania ich. Dlaczego nie użyć tego samego komputera Mac do utworzenia obrazu dysku?

[Edytuj] alternatywnie, jeśli dystrybuujesz aplikację przenośną, na przykład Javę .plik jar, po co zawracać sobie głowę obrazem dysku? Mac rozumie .zip i .smoła.archiwum gz w sam raz.

Chyba chodzi mi o to, że nie rozumiem, jak można potrzebować obrazu dysku DMG, ale nie mieć Maca, za pomocą którego można go utworzyć.

 -28
Author: Sherm Pendley,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-13 07:33:45