Wie erstelle ich ein natives Mac OS X-Installationsprogramm (auf einer Nicht-Mac-Plattform)?

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

  •  08-07-2019
  •  | 
  •  

Frage

Wie kann ich ein natives Mac OS X-Installationsprogramm für meine Anwendung auf einer Nicht-Mac-Plattform erstellen?

Ich habe zum Beispiel einen Windows-PC und eine Java-Anwendung.Ich möchte, dass der Windows-PC ein Installationsprogramm erstellt (möglicherweise in einem .dmg-Archiv), das mit dem Apple-Installationsprogramm funktioniert.

War es hilfreich?

Lösung

Es ist nun möglich, ein native Mac OS X Installationsprogramm auf einer Nicht-Mac-Plattform zu erstellen. Als Louis Gerbarg, ist der schwierige Bit der BOM (Bill-of-Material) Datei. Doch eine Open-Source-Version von mkbom (basierend auf dem osxbom Code von Joseph Coffland) ist jetzt verfügbar unter:

http://hogliux.github.io/bomutils

Die Website hat auch einen einfachen Mac OS X Installer auf die Schaffung von auf Linux ( http://hogliux.github.io/bomutils/tutorial.html ).

Meine Firma regelmäßig Mac OS X Installer unter Linux mit dieser Methode bauen und bisher haben wir keine größeren Probleme gehabt.

Andere Tipps

Wie andere bereits betont haben, gehen Sie wirklich die schwierige Lösung für dieses Problem an, und Ihre Benutzer werden Ihren Namen dafür verfluchen, es sei denn, Sie haben eine Wirklich guter Grund dafür.Es stimmt, dass für bestimmte Arten von Anwendungen Installationsprogramme für Mac OSX erforderlich sind.Dazu gehören im Allgemeinen:

  • Anwendungen, die benutzerdefinierte Treiber installieren (z. B. Kernel-Erweiterungen)
  • Anwendungen, die Frameworks oder andere Ressourcen installieren müssen, die aus irgendeinem Grund nicht in das Anwendungspaket gepackt werden konnten
  • Anwendungen, die als Systemdienst ausgeführt werden müssen und daher einige Nachinstallationsskripts ausführen müssen, um die App beim Booten zu starten
  • Schlecht geschriebene Programme, die das Vornehmen irgendeiner Art von Änderungen am System des Benutzers erfordern (z. B. das Festlegen von Berechtigungen für einen Ordner oder ähnliches), und dem Entwickler sind durch kleine Marketingabteilungen die Hände gebunden, um die Anwendung auf die schmerzhafteste Art und Weise zu verbreiten, die möglich ist

Ok, der letzte Punkt ist etwas sarkastisch, aber verstehen Sie, was ich meine?:) Wenn Sie eine normale Endbenutzeranwendung schreiben, sollten Sie diese grundsätzlich auf die normale Weise verteilen, die Mac-Benutzer erwarten würden, nämlich eine DMG-Datei, die das Paket Ihrer Anwendung enthält.Oder wenn Sie es wirklich schick machen möchten, fügen Sie einen Alias ​​in den Ordner „Anwendungen“ innerhalb der DMG ein, um dem Benutzer zu helfen, das Programm dorthin zu ziehen.Es sei denn, Sie schreiben etwas, das sich selbst installieren muss hinein das System, und nicht einfach geführt werden Da das System nicht funktioniert, gibt es hier keinen Grund, ein Installationsprogramm zu verwenden.Bedenken Sie außerdem, dass es sich hierbei um OSX handelt, das bereits eine voll funktionsfähige Java-JRE enthält, sodass Sie sich keine Gedanken über das Packen der JRE in ein Installationsprogramm oder ähnliches machen müssen.

Da Sie nun für diese Frage gebührend beschimpft wurden, beantworte ich sie mit der Annahme, dass Ihre Software in eine der oben genannten Kategorien fällt.Wirklich, Ihre beste Wahl wäre es, sich für eine kommerzielle Lösung wie den VISE-Installer zu entscheiden (wobei ich wiederum mit Sicherheit sagen kann, dass die überwiegende Mehrheit der Mac-Benutzer vor Angst zurückschrecken wird, wenn sie ein mit diesem Tool erstelltes Produkt installieren), das Ihnen dies ermöglicht um genau das zu tun, was Sie hier suchen – im Grunde ein plattformübergreifendes Installationsprogramm zu erstellen, das aus einer einzigen Installationsdatei für die verschiedenen Plattformen erstellt, die Sie unterstützen möchten.

Auch hier ist es jedoch am besten, das zu tun, womit Benutzer dieser Plattform am vertrautesten sind (weshalb alle Antworten auf Ihre Frage Sie dazu auffordern, kein Installationsprogramm zu erstellen).Das bedeutet jedoch, dass Sie, wenn Sie wirklich ein Installationsprogramm erstellen müssen, ein verwenden sollten nicht-plattformübergreifendes Framework;Windows-Benutzer werden sich am wohlsten fühlen, wenn ihnen ein Standard-MSI-Installationsprogramm zur Verfügung steht, und Mac-Benutzer werden sich am wohlsten mit einem Apple-Installer-Paket fühlen.Das PackageMaker-Programm ist jedoch bekanntermaßen begrenzt, daher sollten Sie es bei Bedarf verwenden Eisberg stattdessen.Dies bedeutet für Sie etwas mehr Wartungsaufwand, da Sie sich um zwei (oder mehr) separate Installationsprogramme kümmern müssen. Wenn Ihre Software jedoch wirklich so komplex ist, dass dies erforderlich ist, sollten Sie bereit sein, für den Komfort Opfer zu bringen Ihrer Benutzer.

Es ist schwierig, eine .dmg unter Windows zu erstellen, aber es ist sicherlich möglich, eine .app-Datei-Struktur zu erstellen, die Sie dann zip können, wie andere erwähnt haben kommentiert. Es gibt Zeiten, in denen ein regelmäßiger .pkg wird es nicht schneiden, und Sie wollen Dialoge bieten, vor der Installation überprüft, etc. Sie tun können, dass mit BitRock Install , können Sie die Installationsdateien für mac, Linux, Windows, Solaris von jedem der anderen Plattformen bauen.

Also, ein paar kurze Fragen.

Erstens, warum wollen Sie einen Installer? Die meisten Mac-Anwender bevorzugen Anwendungen, die einfach per Drag installiert sind. Wenn Sie nicht Mac OS X-spezifischen Code zu schreiben ist es schwer vorstellbar, müssen Sie Bits an besonderen Orten zu platzieren, wie Application Support oder LaunchDaemons. Unter der Annahme, alles, was Sie gerade haben geht in einem Ordner, warum mit einem Installer überhaupt die Mühe machen?

Zweitens, warum wäre es ein Problem sein, das Mac-Installationsprogramm auf einem Mac zu bauen? Sicherlich haben Sie einen macintosh um die App zu testen (Sie sind nicht nur blind es für Mac Versand ohne es auf einem Mac zu testen, nicht wahr?).

Okay, gesagt haben, dass, vorausgesetzt, Sie immer noch einen guten Grund haben, um tatsächlich diese zu bauen auf einem PC, gibt es einige Bits, die einfach nicht gehen zu sein sind. Im Grunde eine .pkg ist ein Bündel von Text-Skripte, Lokalisierungen, eine Archivdatei (Archive.pax.gz) und eine Stückliste (Archive.bom).

nicht viel ändert Unter der Annahme, zwischen baut, können Sie das Installationsprogramm auf einem Mac machen und dann wieder aufzubauen nur die bom und den pax.gz, ersetzen Sie sie in die bestehenden .pkg und Batch ein paar Stücke von Metadaten. Die Pax sollte einfach genug sein, um mit (pax ist ein Standard-Archivformat), aber die bom-Datei kann ein bisschen schwieriger, unter Beweis stellen, da ich glaube es nicht öffentlich dokumentiert ist, und ich bezweifle, die Werkzeuge für die Erstellung von ihnen (mkbom) ist Teil Darwin (nicht Open-Source). Also Sie gehen zu müssen, um das herauszufinden und ein eigenes Werkzeug schreibt die bom-Datei zu erstellen.

Mit anderen Worten, dies ist wahrscheinlich eine große Menge an Arbeit sein.

Der üblicher Weg, eine Anwendung auf einem Mac zu installieren, ist die App in die Anwendungsordner zu ziehen. Die meisten Programme kommen als DMG die App und eine symbolische Verbindung zum Anwendungsordner enthält. Warum würden Sie wollen, dass es eine andere Möglichkeit? Sie müssen denken, Mac eine große Mac-Anwendung zu bauen! Look and Feel ist sehr wichtig, vor allem für Mac-Nutzer.

Überprüfen Sie den Code zum Auslesen BOM-Dateien: https://cauldrondevelopment.com/svn/osxbom/trunk

Packen Sie alles in eine JAR-Datei und fügen Sie sie einer ZIP-Datei hinzu.Erledigt.

Aber im Ernst, Sie möchten Ihre Anwendung an Macintosh-Benutzer verteilen, ohne sie vorher zu testen?Auf welchem ​​Planeten bist du!?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top