Erstellen eines netten dmg "Installer" für Mac OS X.


83

Ich habe meine erste Qt-Anwendung für Mac OS X erstellt. Jetzt möchte ich eine schöne .dmg-Datei erstellen, mit der der Benutzer sie einfach installieren kann. Ich denke an etwas wie Firefox (siehe Bild): Geben Sie hier die Bildbeschreibung ein

Ich bin völlig neu in diesem Bereich, daher weiß ich nicht einmal, wo ich anfangen soll.


2
Vielleicht kann dies Ihnen helfen stackoverflow.com/questions/96882/…
Roger Lindsjö

Ich brauche es nicht wirklich, um automatisiert zu werden, ich würde etwas einfacheres bevorzugen, um mich
anzufangen

3
Dies kann von Nutzen sein: el-tramo.be/guides/fancy-dmg
Mike K

@ MikeK: Sie sollten dies als Antwort posten, ich werde es akzeptieren, es ist genau das, wonach ich gesucht habe;)
xx77aBs

Sie können dieses Tutorial überprüfen . Es zeigt Ihnen Schritt für Schritt, wie Sie schöne DMGs nur mit iDMG (einer kostenlosen Software), Finder und einem Terminal erstellen. Es ist sehr leicht.
Igor Augusto

Antworten:


90

Bringen Sie diese Frage auf den neuesten Stand, indem Sie diese Antwort geben.

appdmgist ein einfaches, benutzerfreundliches Open-Source-Befehlszeilenprogramm, das dmg-Dateien aus einer einfachen json-Spezifikation erstellt. Schauen Sie sich die Readme-Datei auf der offiziellen Website an:

https://github.com/LinusU/node-appdmg

Kurzes Beispiel:

  1. Installieren Sie appdmg

    npm install -g appdmg
    
  2. Schreiben Sie eine JSON-Datei ( spec.json)

    {
      "title": "Test Title",
      "background": "background.png",
      "icon-size": 80,
      "contents": [
        { "x": 192, "y": 344, "type": "file", "path": "TestApp.app" },
        { "x": 448, "y": 344, "type": "link", "path": "/Applications" }
      ]
    }
    
  3. Programm ausführen

    appdmg spec.json test.dmg
    

(Haftungsausschluss. Ich bin der Schöpfer von appdmg)


Im Vergleich zu anderen Lösungen ist dies erstaunlich einfach.
Aeolun

1
Ja, Linus, weit weg. Uppskattar det.
Prof. Falken

Gibt es eine Chance, die kompilierte Binärdatei für OSX 10.6.8 zu haben? Ich weiß nicht, wie ich Ihre Quellen zusammenstellen soll ... (nicht viel von einem Apfeltyp hier ...)
Mark Miles

4
@MarkMiles Der größte Teil des Codes ist in Javascript geschrieben und daher nicht konform. Npm kümmert sich um das Kompilieren aller erforderlichen Quelldateien (C, Objective-C). Der einfachste Weg, um alles zum Laufen zu bringen, ist 1) Installieren von Brew ( Brew.sh ) 2) Installieren von Node.js ( brew install node), das auch gebündelt wird npm. 3) Folgen Sie dem "Schnellbeispiel" in der Antwort
Linus Unnebäck

@ Lothar Ich denke, dass es großartig wäre, appdmg als Binärdatei für eine einfache Verteilung zu verpacken, aber der Anwendungsfall, den ich bereits in eine nodejs-Umgebung aufgenommen hatte. Aber wenn Sie denken, dass dies in einem "einfachen Shell-Skript" geschehen könnte, dann wage ich Sie, es zu versuchen. Schauen Sie sich den Code an, er ist nicht zu trivial. Es gibt einen Grund, warum wir neben Shell-Skripten noch andere Programmiersprachen haben.
Linus Unnebäck

20

Es ist ziemlich einfach - die Grundidee ist, dass Sie mit dem Festplatten-Dienstprogramm ein leeres Bild erstellen (machen Sie es groß genug, um zumindest Ihre Inhalte aufzunehmen - die genaue Größe spielt keine Rolle), das Bild mit dem Finder öffnen, Ihre Inhalte einfügen und anordnen wie Sie es möchten (verwenden Sie Rechtsklick und Ansichtsoptionen anzeigen , um beispielsweise die Symbolgröße oder das Hintergrundbild festzulegen). Das ist es fast - alles , was bleibt ist , dass r / w - Bild in ein komprimiertes Bild zu konvertieren: Auswerfen es und Verwendung Konvertieren in Festplatten - Dienstprogramm in ein komprimiertes Bild zu konvertieren.


9

Keine der vorhandenen Antworten hat es wirklich für mich getan; Eine Antwort ist manuell, und die beiden anderen Optionen - iDMG und Node-Appdmg - beinhalten beide Applescripting des Finders, was nicht ideal ist.

Der beste Weg, dies als automatischen Build-Schritt zu tun, besteht darin, eine template.dmg zu erstellen, die genau so aussieht, wie Sie es möchten (folgen Sie den normalen Anweisungen, z. B. der Antwort von Simon Urbanek, aber nicht den letzten Schritt des Komprimierens) und dann in Ihrem Build Skript:

  1. Verwenden Sie hdiutil, um das Bild anzuhängen
  2. Verwenden Sie cp usw., um die Anwendung in das bereitgestellte Image zu kopieren
  3. hdiutil abnehmen
  4. komprimiere das Bild: hdiutil convert "in.dmg" -quiet -format UDZO -imagekey zlib-level = 9 -o "MyApp-0.3.dmg"

Unter https://github.com/remko/fancy-dmg/ gibt es ein Makefile , das diese Schritte enthält.


2
Wir arbeiten daran, AppleScript zu löschen und Node-Appdmg plattformübergreifend bereitzustellen. Wenn Sie die Arbeit verfolgen möchten, schauen Sie hier: github.com/LinusU/node-appdmg/issues?milestone=1&state=open
Linus Unnebäck

1
@ LinusUnnebäck Das ist großartig; Danke, dass du das geteilt hast! Selbst das Entfernen der Applescript-Abhängigkeit wäre hervorragend.
JosephH

Kein Problem :) Wir müssen wirklich nur in der Lage sein, unseren eigenen .DS_Store zu schreiben, und alles ist wirklich herausgefunden. Ich muss nur Zeit finden, um es zu implementieren. ( github.com/LinusU/node-appdmg/issues/14 )
Linus Unnebäck

.DS_Store ist nicht dokumentiert und ich bin mir sicher, dass dies niemals der Fall sein wird. Es ist also kein Ausweg. Die Vorlage scheint die einzig verlässliche Lösung zu sein.
Lothar


1

Sie können dies mit Finder tun:

  1. Laden Sie diese leere DMG-Datei herunter und entpacken Sie sie (ich bin derjenige, der sie erstellt und hochgeladen hat).
  2. Ändern Sie die Größe der DMG-Datei auf die entsprechende Größe (die entsprechende Größe entspricht normalerweise der aktuellen Größe plus der Größe Ihrer .app-Datei). Öffnen Sie dazu das Festplatten-Dienstprogramm (wenn Sie nicht wissen, wie das geht, suchen Sie disk utilityim Launchpad nach). Klicken Sie dann in der Menüleiste auf "Bilder" und wählen Sie "Größe ändern ...". Sie erhalten ein Fenster zum Öffnen einer Datei, öffnen Sie die leere DMG-Datei.
  3. Doppelklicken Sie auf die DMG-Datei, um sie bereitzustellen. Auf dem Desktop Untitledsollte ein Gerät mit dem Namen angezeigt werden. Benennen Sie es in den gewünschten Namen um (Sie möchten ihm wahrscheinlich den gleichen Namen wie Ihrem Programm geben).
  4. Öffnen Sie das Gerät. Sie sollten so etwas sehen:

    Geben Sie hier die Bildbeschreibung ein

    Wenn bis auf die Verknüpfung zum Ordner "Programme" alles weiß ist, drücken Sie Cmd+ Jund ein Fenster wird geöffnet. Am unteren Rand dieses Fensters befindet sich ein Quadrat mit der Bezeichnung "Bild hierher ziehen". Klicken Sie auf dieses Quadrat und ein Dialogfeld zum Öffnen wird geöffnet. In diesem Dialog, drücken Sie Cmd+ Shift+ Gund Typ und wählen Sie image.png./Volumes/(whatever you called the device in step 3)/.image

    Alles hier außer der Verknüpfung zum Ordner "Programme" ist nur ein Hintergrundbild. Möglicherweise möchten Sie das Hintergrundbild ändern (das die Hintergrundfarbe und den Pfeil enthält). Öffnen Sie dazu die Datei in einem Bildeditor und bearbeiten Sie sie nach Ihren Wünschen. Nachdem Sie dies getan haben, müssen Sie möglicherweise das Gerät aushängen und erneut bereitstellen, indem Sie die DMG-Datei öffnen, um die Änderungen anzuzeigen. Je nachdem, was Sie in das Bild eingefügt haben, müssen Sie möglicherweise auch die Verknüpfung in den Ordner "Programme" verschieben, um sie an das neue Hintergrundbild anzupassen./Volumes/(whatever you called the device in step 3)/.image/image.png

  5. Ziehen Sie Ihre .app-Datei an den Anfang des Pfeils in dem Fenster, in dem das Gerät aus der DMG-Datei geöffnet wird, so dass es folgendermaßen aussieht:

    Geben Sie hier die Bildbeschreibung ein

    Möglicherweise wird eine Fehlermeldung angezeigt, dass nicht genügend freier Speicherplatz vorhanden ist. Wenn dies der Fall ist, fahren Sie mit Schritt 2 fort und ändern Sie die Größe der DMG-Datei auf eine größere Größe.

  6. Hängen Sie das Gerät aus, indem Sie im Finder auf den Pfeil neben dem Gerätenamen klicken:

    Geben Sie hier die Bildbeschreibung ein

  7. Konvertieren Sie die DMG-Datei in schreibgeschützt. Öffnen Sie dazu das Terminal und geben Sie dies ein (ersetzen Sie es /path/to/dmg/filedurch den Pfad zur DMG-Datei und nameOfDmgFile.dmgdurch den Namen der DMG-Datei):

    cd /path/to/dmg/file
    hdiutil convert -format UDZO -o newNameOfDmgFile.dmg nameOfDmgFile.dmg
    

    Dadurch wird eine neue DMG-Datei mit dem Namen newNameOfDmgFile.dmg(oder einem anderen Namen, den Sie oben verwendet haben) erstellt. Dies ist die gewünschte Datei.


Warum müssen wir die Größe der DMG ändern (wie Sie in Punkt 2 erwähnt haben)
Krishna Maru

@KrishnaMaru Es ist lange her, dass ich diese Antwort geschrieben habe, aber wenn ich mich richtig erinnere, würden Sie eine Fehlermeldung erhalten, wenn Sie versuchen, eine große Datei in eine zu kleine DMG zu kopieren.
Donald Duck

0

Sie können hierfür das Festplatten-Dienstprogramm verwenden. Wenn Sie jedoch ein Bild im Hintergrund sehen möchten, benötigen Sie einige erweiterte Anweisungen.

Öffnen Sie zuerst das Festplatten-Dienstprogramm
und klicken Sie dann auf Datei> Neues Image> Leeres Image.
Sie werden nach der Größe und dem Namen gefragt.
Danach können Sie Dateien darin ablegen und los geht's!

HINWEIS: Dies wurde unter Mac OS Mojave getestet. Ich weiß nichts über frühere Versionen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.