Programm für Mac veröffentlichen

Hallo zusammen,

mein Programm ist fertig und für Windows ist das alles kein Problem. Auf dieser Plattform bin ich seit Dekaden unterwegs und kenne mich gut aus. Für meine Setup-Datei greife ich hier auf InnoSetup zurück.

Jetzt zum Mac. Auch hier läuft meine Software einwandfrei - aber… Gebe ich die Software über die erzeugte TAR-Datei weiter, dann wird diese ordentlich auf dem Mac ausgepackt und wenn diese gestartet wird, erscheint der folgende Hinweis:

Wenn ich die App nun mit der ⌘-Taste starte, erscheint der nächste Hinweis:

Klicke ich auf “Öffnen”, dann startet die App problemlos, auch wenn Updates geladen werden, fragt der Mac nicht mehr nach.

Nun zu meiner Frage:
Wie kann ich diese Meldung umgehen? Kann mir bitte jemand erklären, wie ich das auf dem Mac genau machen muss? Die App soll nicht durch den Store vertrieben werden (vorerst), sondern über den Download meiner Website.

Welche Software empfehlt Ihr, damit ich auch auf dem Mac eine Art Setup erstellen kann?

Ich bedanke mich schon jetzt für die Antworten, denn auf dem Mac bin ich da noch etwas “holprig” unterwegs.

Viele Grüße

Im Forum gibt es eine ganze Reihe Threads, die dieses Thema haben.

Du brauchst erst einmal einen Developer-Account bei Apple. Da bekommst Du Zertifikate zum Signieren Deines Programms.
Danach mußt Du noch die Notarisierung machen. Es gibt eine kostenlose Lösung von LateNight-Software (SD Notary).

Am einfachsten ist es jedoch, AppWrapper von Sam Rowlands zu verwenden. Der ganze Prozeß ist schon grauenvoll genug. Mit der App ist es nicht ganz so schlimm.

tar ist total unüblich auf dem Mac genauso wie zip. dmg oder pkg-Dateien sind gebräuchlich. Zum Erstellen einer dmg-Datei gibt es DropDMG and DMGCanvas.

Edit: das ganze kann nur auf einem Mac gemacht werden.

1 Like

Die oben zu sehenden Bilder haben mit Code-Signierung und Notarisierung zu tun, wie Beatrix schon schrieb. Um die Zertifikate zu bekommen, ist ein Developer-Account bei Apple erforderlich (kostet 99 Eier pro Jahr). Dazu das kostenlose XCode, um die Zertifikate zu verwalten.

Dann das bereits genannte AppWrapper, um die Signierung und Notarisierung zu vereinfachen.
Im Zusammenspiel mit DropDMG oder DMGCanvas können Disk-Images erstellt werden, welche die von dir erstellten Programme zur Installation bereithalten.

2 Likes

Heißt das, dass ich bei jedem Update diese Prozess mit der Signierung durchführen muss? Das wäre ja der absolute Wahnsinn, vor allem, wenn man das nicht direkt über Xojo machen kann.

Dann finde ich die nachfolgende Möglichkeit in Xojo sehr verwirrend.

Gibt es hier auf Seiten von Xojo eine genaue Anleitung, wie man diesen Prozess mit der Signierung durchlaufen kann bzw. muss?

Welches Programm ist zu empfehlen? DropDMG oder DMGCanvas?

Viele Grüße

Sorry, jetzt muß ich lachen. Ja, da müssen wir alle durch. Selbstverständlich geht das zu automatisieren.

“Sign” ohne eine Signatur ist ein lokales Zertifikat. Du kannst da Deinen Zertifikatsnamen eintragen. Das macht aber nicht die Notarisierung.

Und eine Anleitung hätte gerne jeder.

Ja, genau das bedeutet das - ansonsten wäre der Aufwand, den Apple treibt um macOS frei von Malware zu halten ja sinnlos, wenn man per Update Schadcode unbemerkt einschleusen könnte…

Der Punkt “Sign” in den Xojo Build Settings steht für eine ad-hoc Codesignierung - das ist ein von Apple vorgesehener “Schnelldurchlauf”, der den Betrieb des damit signierten Programms auf dem eigenen Rechner (aber nicht auf fremden Rechnern) erlaubt. Anonsten könntest Du Dein eigenes Programm auf dem Entwicklungsrechner nicht starten…

Falls Dein Programm kommerzieller Natur ist, würde ich ernsthaft die Anschaffung und Nutzung von AppWrapper empfehlen - nicht umsonst empfehlen ihn hier viele. AppWrapper kann direkt in den Buildprozess von Xojo eingebunden werden - das Ganze läuft dann also “vollautomatisch” durch und “spuckt” eine auslieferbare Datei aus.

Bei mir läuft DMG Canvas - aber das ist eher Geschmackssache - beide Programme funktionieren. Man kann aber auch auf dem Mac auch ohne Weiteres ZIP Archive ausliefern - das ist inzwischen sogar meine bevorzugte Art der Bereitstellung, da es bei vielen Anwender nicht in den Kopf rein will, das sie das Programm vom DMG erst in den Programme Ordner verschieben müssen und von dort aus starten sollen. Oft wird per Doppelklick vom (schreibgeschützten) DMG gestartet - das dann nach einem Neustart nicht mehr gemountet ist und so weiteren Support (“das Programm ist verschwunden”) nach sich ziehen kann…

1 Like

Ich kenne das von der App-Entwicklung. Hier wird allerdings von der Entwicklungsumgebung direkt die fertige Datei (mit der Signierung) ausgeliefert und kann in den Store geladen werden.

So wie ich das jetzt verstehe, brauche ich also zwingend den AppWrapper. Muss ich denn für irgendeinen Prozess dazwischen auch Xcode installieren?

Danke, ich schaue mir den AppWrapper an und versuche das Prozedere zu verstehen. DMG Canvas sagt mir auf den ersten Blick auch mehr zu. Danke.

Ja, XCode wird benötigt. Irgendwelche CLI Tools.

Es ist gar nicht so schwierig, das ganze einmal zu machen. Aber die netten Kinder bei Apple finden es toll, da gelegentlich mal Änderungen zu machen. Dann ist es besser, wenn jemand wie Sam Ahnung davon hat.

1 Like

Mit Xojo nicht. Aber man kann’s durchaus so integrieren, dass mit einem Klick auf “Build” alles automatisiert ausgelöst wird.

Ein Beispiel ohne Drittanbieter Tools (mal abgesehen von Xcode, was immer eine Voraussetzung ist): GitHub: jo-tools/xojo2dmg | Xojo2DMG: CodeSign, DMG creation and Notarization

Unbedingt! Sehr zu empfehlen wenn man nicht alles selber machen und unterhalten will, und dabei erst noch Support erhält. Link: App Wrapper 4

2 Likes