Apple beschreibt für die direkte Verteilung macOS-Software unter anderem ZIP-Archive, Disk-Images und Installationspakete als mögliche Einreichungsformen (Dokumentation zum Verpacken von Mac-Software). Daraus folgt für die Veröffentlichung: Ein Remote Mac kann Signierung und Notarisierung ausführen, aber ein erfolgreicher Upload allein ist kein Freigabenachweis. Prüfen Sie Developer-ID-Signatur, Einreichung, Ticket und Installation am endgültigen Artefakt, bevor Sie es veröffentlichen. Notarisierung ist nicht gleich App-Store-Prüfung.
Diese Woche empfohlen: Erstellen Sie mit Ihrem tatsächlichen Release-Projekt ein signiertes Testpaket, reichen Sie es ein und führen Sie die Installationsprüfung an einer heruntergeladenen Kopie durch. Erst wenn der vollständige Ablauf samt Zugangsdaten funktioniert, sollten Sie den Remote Mac als regulären Veröffentlichungsarbeitsplatz einplanen.
Diese Anleitung ist für unabhängige macOS-Entwickler gedacht, die eine App direkt an Nutzer ausliefern möchten.
Freiberufliche Softwareautoren finden darin eine Prüfreihenfolge für Kundenübergaben mit Signatur und Notarisierung.
Auch Remote-Entwickler ohne mitgeführten Mac können damit beurteilen, ob ihre aktuelle Umgebung für einen Release geeignet ist.
Vor dem Start den Verteilungsweg festlegen
Die erste Entscheidung betrifft nicht den Rechner, sondern den Vertriebskanal. Eine App, die direkt von der eigenen Website, an Kunden oder über einen anderen direkten Vertriebsweg verteilt wird, folgt einem anderen Prozess als eine App, die im App Store angeboten werden soll. Apple führt die Verteilungswege getrennt auf; die Dokumentation zur Verteilung für Betatests und Veröffentlichungen hilft dabei, den passenden Xcode-Ablauf einzuordnen.
Für eine direkte Verteilung ist die Developer-ID-Signatur relevant. Die Notarisierung ergänzt diesen Pfad, ersetzt aber weder die App-Signatur noch eine App-Store-Prüfung. Wer versehentlich Anleitungen für die App-Store-Einreichung auf ein direkt verteiltes Installationspaket überträgt, kann ein formal fertiges Archiv erhalten, das für den vorgesehenen Vertrieb trotzdem nicht bereit ist.
Vor dem Öffnen von Xcode sollte deshalb feststehen:
- Welche konkrete Datei wird an Nutzer oder Kunden übergeben?
- Wird eine App, ein Disk-Image oder ein Installationspaket verteilt?
- Welche Person oder welches Team kontrolliert die Developer-ID-Zugangsdaten?
- Ist die Remote-Umgebung für den Zugriff auf Projekt und Signaturmaterial berechtigt?
- Gibt es eine lokale oder anderweitig erreichbare Rückfallmöglichkeit, falls der Remote-Zugang ausfällt?
Bei einem Auftrag zählt nicht nur, ob der Build auf dem Entwicklungsrechner startet. Der Kunde benötigt ein Artefakt, dessen Herkunft nachvollziehbar ist und das unter den vorgesehenen Bedingungen installiert werden kann. Ein Build, der sich nur innerhalb der eigenen Entwicklungsumgebung öffnen lässt, belegt keine erfolgreiche Auslieferung.
Vor der Reise Identität und Zugangsdaten absichern
Prüfen Sie zunächst, ob das verantwortliche Entwicklerteam tatsächlich über die erforderliche Developer-ID-Identität verfügt. Apple unterscheidet Developer-ID-Zertifikate für Anwendungen und Installationspakete. Welche Signatur gebraucht wird, hängt davon ab, welche Artefakte signiert und verteilt werden; die Apple-Anleitung zu Developer-ID-Zertifikaten beschreibt die verfügbaren Zertifikatstypen und deren Erstellung.
Ein angemeldetes Entwicklerkonto ist kein Beweis dafür, dass die Veröffentlichung möglich ist. Ein Konto kann zwar Zugriff auf ein Projekt bieten, während die nötige Teamrolle, Zertifikatsberechtigung oder Erlaubnis zum Zugriff auf die Signaturidentität fehlt. Klären Sie diese Punkte, solange noch eine zuständige Teamperson erreichbar ist. Falls die nötige Berechtigung fehlt, ist die richtige Entscheidung zunächst anzuhalten und den Zugriff über das Entwicklerteam zu klären – nicht, ein fremdes Zertifikat oder persönliche Zugangsdaten auszuleihen.
Zugangsdaten sollten außerdem nicht gemeinsam mit dem Quellcode, einem Build-Artefakt oder einem öffentlich zugänglichen Projektverzeichnis abgelegt werden. Für die Befehlszeilenübermittlung kann ein gespeichertes Schlüsselbundprofil verwendet werden. Prüfen Sie, wer auf den betreffenden macOS-Benutzer und dessen Schlüsselbund zugreifen kann. Auf einem gemeinsam genutzten oder nicht ausreichend kontrollierten Arbeitsplatz gehören vertrauliche Zugangsdaten nicht in eine Klartextdatei oder in ein übertragbares Projektarchiv.
Für einen Remote-Einsatz ist eine kleine Wiederherstellungsplanung sinnvoll:
- Halten Sie fest, welches Entwicklerteam und welche Signaturidentität zum Release gehören.
- Sorgen Sie dafür, dass Projektzugriff und notwendige Werkzeuge vor Reisebeginn funktionieren.
- Bewahren Sie Wiederherstellungsinformationen getrennt vom Build auf.
- Vereinbaren Sie, wer bei fehlenden Rechten die Freigabe erteilen kann.
- Stoppen Sie den Ablauf, wenn die Identität der Signatur oder die Berechtigung zur Nutzung nicht zweifelsfrei geklärt ist.
Erstes Release-Artefakt auf Signatur und Inhalt prüfen
Ein erfolgreicher Build oder ein startendes Projekt ist noch kein verteilbares Paket. Vor der Notarisierung müssen Sie das tatsächliche Release-Artefakt erzeugen und dessen Signatur prüfen. Achten Sie besonders auf eingebettete Hilfsprogramme, Frameworks, Plug-ins und andere verschachtelte Bestandteile: Ein Fehler in einem enthaltenen Element kann die Prüfung des Gesamtpakets beeinträchtigen, auch wenn die Hauptanwendung lokal startet.
Xcode kann den Build und die Verteilung begleiten; die konkrete Einstellung hängt jedoch vom Projekt und dem gewählten Verteilungsweg ab. Apples Dokumentation zur Hardened Runtime beschreibt die erforderliche Laufzeitkonfiguration für den Notarisierungsablauf. Aktivieren Sie sie nicht blind für ein beliebiges Projekt: Prüfen Sie, welche Laufzeitberechtigungen die App tatsächlich benötigt, und dokumentieren Sie Abweichungen. Unbegründete Ausnahmen erschweren die Diagnose und können die Sicherheitskonfiguration schwächen.
Ein erster Prüfpunkt über die Befehlszeile kann so aussehen:
codesign --verify --strict --verbose=2 "MeineApp.app"
Der Befehl prüft die Codesignatur und meldet Fehler, falls die Signaturprüfung nicht bestanden wird. Er ersetzt jedoch nicht die Kontrolle der Projektkonfiguration oder den Test des fertigen Installationspakets. Speichern Sie die vollständige Ausgabe zusammen mit dem Build-Kennzeichen und dem Zeitpunkt der Erstellung, damit ein Teammitglied später erkennen kann, welches Artefakt geprüft wurde.
Die folgende Gegenüberstellung trennt die beiden häufig verwechselten Ergebnisse:
| Prüfschritt | Developer-ID-Signatur | Notarisierung |
|---|---|---|
| Zweck | Ordnet signierten Code einem Herausgeber zu | Prüft das eingereichte Softwarepaket durch Apple |
| Gegenstand | Anwendung oder geeignetes Installationsartefakt | Das für den Vertrieb vorbereitete Paket |
| Nachweis | Signaturprüfung am fertigen Build | Bearbeitungsstatus und Notarisierungsprotokoll |
| Typischer Fehler | Fehlende, ungültige oder nicht passende Signatur | Ablehnung oder Warnung im Ergebnisprotokoll |
| Konsequenz bei Fehler | Build und Signaturzuordnung korrigieren | Ursache im Protokoll untersuchen und neu einreichen |
Die Tabelle ist keine Reihenfolge, in der ein Ergebnis das andere ersetzt. Eine signierte Anwendung kann noch nicht notariert sein; ein positiver Notarisierungsstatus ist wiederum kein Ersatz für die Kontrolle, ob gerade die Datei, die ausgeliefert werden soll, korrekt signiert wurde.
Achtung: Ändern Sie nach der Signatur keine Bestandteile der App und packen Sie nicht ungeprüft ein anderes Artefakt unter denselben Dateinamen. Prüfen Sie nach jeder Änderung erneut die Signatur und reichen Sie das tatsächlich vorgesehene Release-Paket ein.
Notarisierung vom Remote Mac aus einreichen
Apple unterstützt den Notarisierungsablauf über Xcode und über die Befehlszeilenwerkzeuge. Die Dokumentation zum Anpassen des Notarisierungsablaufs erläutert die verfügbaren Verfahren. Für einen Remote-Arbeitsplatz ist die Befehlszeile oft gut nachvollziehbar, weil Einreichung, Kennung und Protokoll in einer Sitzung dokumentiert werden können. Das ist allerdings nur dann ein Vorteil, wenn die Zugangsdaten sicher hinterlegt sind und die Sitzung nicht mit unnötig weitreichenden Berechtigungen läuft.
Legen Sie zunächst ein Schlüsselbundprofil für die berechtigte Entwickleridentität an. Die konkrete Authentifizierung hängt davon ab, welche Zugangsdaten das Team bereitstellt. Verwenden Sie keine Zugangsdaten, deren Herkunft oder Zuständigkeit unklar ist. Eine mögliche Struktur für die Befehle lautet:
xcrun notarytool store-credentials "release-profil" \
--apple-id "ENTWICKLER-KONTO" \
--team-id "TEAM-KENNUNG" \
--password "APP-SPEZIFISCHES-PASSWORT"
Anschließend wird das vorbereitete Release-Paket eingereicht:
xcrun notarytool submit "MeineApp.zip" \
--keychain-profile "release-profil" \
--wait
Ersetzen Sie Platzhalter durch die vom Team bestätigten Werte; übernehmen Sie sie nicht in ein öffentliches Skript oder ein Projektarchiv. Falls die Einreichung ohne Warten gestartet wird, muss der Status anschließend gesondert abgefragt werden. In beiden Fällen sollte die vom Werkzeug ausgegebene Einreichungskennung gespeichert werden. Sie verbindet das konkrete Artefakt mit dem später abrufbaren Ergebnis und verhindert, dass ein Protokoll versehentlich einem anderen Build zugeordnet wird.
Die Aufzeichnung sollte mindestens den Namen des Artefakts, die verwendete Build-Version, die Einreichungskennung, den Status und das Ergebnisprotokoll enthalten. Diese Angaben sind besonders hilfreich, wenn Entwickler und Kunde in verschiedenen Zeitzonen arbeiten: Eine Person kann die Einreichung durchführen, während eine andere den Status später kontrolliert, ohne sich auf eine kurze Bildschirmfreigabe oder mündliche Übergabe verlassen zu müssen.
| Veröffentlichungssituation | Geeigneter Ablauf | Was vor der Entscheidung geprüft werden muss |
|---|---|---|
| Projekt wird in Xcode verwaltet und das Team nutzt dessen Verteilungsablauf | Notarisierung im passenden Xcode-Prozess | Exportiertes Artefakt und Abschlussstatus |
| Release wird über automatisierte oder dokumentierte Befehle vorbereitet | notarytool mit gespeichertem Schlüsselbundprofil | Berechtigung, Einreichungskennung und Protokoll |
| Team kann Zugangsdaten auf dem Remote Mac nicht sicher bereitstellen | Einreichung zunächst nicht remote durchführen | Berechtigte Person und sichere Übergabe organisieren |
| Einreichung endet mit Ablehnung oder Warnung | Veröffentlichung anhalten und Protokoll auswerten | Betroffener Bestandteil, Signatur und Laufzeitkonfiguration |
FAQ zur Veröffentlichung unterwegs
Kann ein Remote Mac eine macOS-App notarisieren?
Ja, sofern die Remote-Umgebung über die erforderlichen Werkzeuge, Projektdateien und Berechtigungen verfügt. Der entscheidende Test ist nicht der entfernte Standort, sondern ob sich Signatur, Einreichung, Protokollprüfung und spätere Ticketkontrolle am eigenen Projekt vollständig ausführen lassen. Eine nicht geklärte Teamrolle oder unsichere Ablage der Zugangsdaten ist ein Grund, die Veröffentlichung zu verschieben.
Was unterscheidet Developer ID und Notarisierung?
Developer ID bezeichnet die Identität, mit der Software für die direkte Verteilung signiert wird. Die Notarisierung ist eine zusätzliche Prüfung des eingereichten Pakets durch Apple. Sie sollten deshalb die Signatur am fertigen Artefakt und den Notarisierungsstatus getrennt prüfen. Eine bestandene Signaturprüfung sagt noch nicht, ob die Notarisierung abgeschlossen wurde oder das ausgelieferte Paket das erforderliche Ticket enthält.
Ist eine erfolgreiche Einreichung bereits die endgültige Freigabe?
Nein. Eine eingereichte Datei kann noch in Bearbeitung sein, und ein Ergebnis kann Warnungen oder eine Ablehnung enthalten. Warten Sie den Abschluss ab, speichern Sie die Einreichungskennung und prüfen Sie das zugehörige Protokoll. Erst danach folgt die Kontrolle des Tickets am für Nutzer bestimmten Artefakt. Die Einreichung selbst ist also ein Zwischenschritt, nicht der Nachweis einer gelungenen Installation.
Warum reicht ein erfolgreicher Start in Xcode nicht aus?
Der Start in der Entwicklungsumgebung testet nicht automatisch das Paket, das später verteilt wird. Export, Signatur, enthaltene Komponenten und Ticket können sich vom lokal gestarteten Build unterscheiden. Erstellen Sie deshalb das tatsächliche Release-Artefakt und prüfen Sie es nach dem Download in einer möglichst sauberen Umgebung. So werden Probleme sichtbar, die nur bei der Übergabe oder beim ersten Start außerhalb des Entwicklungsprojekts auftreten.
Ergebnis, Ticket und Nutzerinstallation getrennt abnehmen
Nach der Einreichung gibt der Status Auskunft darüber, ob der Notarisierungsdienst die Bearbeitung abgeschlossen hat. Bei einer Ablehnung oder unerwarteten Warnung sollte die Veröffentlichung pausieren. Rufen Sie das Protokoll für die gespeicherte Einreichungskennung ab und ordnen Sie jeden gemeldeten Befund dem konkreten Paketbestandteil zu. Ein pauschales erneutes Einreichen ohne Fehleranalyse kann lediglich dieselbe Ursache wiederholen.
Ein Protokoll lässt sich beispielsweise so abrufen:
xcrun notarytool log "EINREICHUNGS-KENNUNG" \
--keychain-profile "release-profil"
Bewahren Sie die vollständige Ausgabe auf. Kürzen Sie sie nicht auf eine einzelne Fehlermeldung, wenn das Team später nachvollziehen muss, welche Datei und welche Einreichung betroffen waren. Ändern Sie anschließend gezielt den fehlerhaften Teil, erstellen Sie das Release-Artefakt neu und prüfen Sie die Signatur erneut, bevor eine neue Einreichung beginnt.
Ein erfolgreiches Ergebnis muss außerdem mit der Ticketbehandlung und dem tatsächlichen Vertriebsformat zusammenpassen. Apples Anleitung zur Notarisierung von macOS-Software vor der Verteilung beschreibt den Zusammenhang zwischen Einreichung und Verteilung. Für geeignete Artefakte kann das Ticket angeheftet und anschließend validiert werden:
xcrun stapler staple "MeineApp.dmg"
xcrun stapler validate "MeineApp.dmg"
Wählen Sie dabei dieselbe Datei, die später verteilt wird. Wenn die Nutzer ein Disk-Image erhalten, validieren Sie nicht nur eine App-Kopie in einem anderen Ordner und nehmen an, dass damit auch das Disk-Image geprüft sei. Wenn der Vertriebsweg ein Installationspaket oder ein Archiv vorsieht, richten Sie die Kontrolle nach dem endgültigen Pakettyp aus.
Danach folgt die Nutzerprüfung:
- Legen Sie das endgültige Paket in einen Bereich, der den späteren Download realistisch abbildet.
- Laden Sie eine Kopie herunter, statt ausschließlich das ursprüngliche Build-Verzeichnis zu öffnen.
- Prüfen Sie, ob das Paket ohne Entwicklungswerkzeuge am vorgesehenen Mac geöffnet beziehungsweise installiert werden kann.
- Kontrollieren Sie den ersten Start und die erwarteten Berechtigungsdialoge.
- Vergleichen Sie die geprüfte Datei mit der für die Übergabe vorgesehenen Datei.
Die Prüfung sollte außerdem berücksichtigen, dass macOS-Version, App-Funktionen und konkrete Verteilung Einfluss auf das Nutzererlebnis haben können. Ein erfolgreicher Start auf dem Entwicklungsrechner beantwortet nicht automatisch, wie sich die App auf einem anderen System verhält. Halten Sie fest, welche Umgebung Sie geprüft haben und welche Einschränkungen bekannt sind. Bei einem Kundenauftrag sollte die Übergabe diese Angaben enthalten, statt eine uneingeschränkte Kompatibilität zu versprechen.
Remote-Veröffentlichung erst nach einem vollständigen Test freigeben
Für eine kurze Reise oder einen zeitlich begrenzten Release kann ein Remote Mac sinnvoll sein, wenn der lokale Rechner nicht mitgeführt werden soll und der Zugriff auf Projekt und Signaturmaterial zuverlässig organisiert ist. Vor einer regelmäßigen Nutzung sollte der eigene Release-Prozess einmal vollständig durchlaufen: vom Projektzugriff über die Signatur bis zur Installation der heruntergeladenen Kopie. Eine Produktbeschreibung oder eine erreichbare Desktop-Sitzung ist kein Nachweis, dass genau das eigene Projekt in dieser Umgebung erfolgreich veröffentlicht werden kann.
Die Entscheidung lässt sich an konkreten Bedingungen festmachen:
- Direkt einsetzen, wenn Teamrechte und Zugangsdaten geklärt sind, der Build korrekt signiert wird und ein vollständiger Testlauf einschließlich Ticket- und Installationsprüfung gelingt.
- Zunächst kurz testen, wenn die Umgebung verfügbar ist, aber noch nicht mit dem eigenen Release-Projekt geprüft wurde oder die Zugriffsrechte gerade erst eingerichtet wurden.
- Lokalen Mac als Rückfall behalten, wenn ein Release an eine feste Frist gebunden ist, die Netzwerkverbindung unterwegs nicht verlässlich ist oder vertrauliche Signaturmaterialien nicht sicher in der Remote-Umgebung verwendet werden können.
- Nicht veröffentlichen, solange Signaturfehler, fehlende Teamrechte oder eine abgelehnte Einreichung ungeklärt sind.
Ein lokaler Mac vermeidet Abhängigkeit von der Verbindung, verlangt aber, dass das Gerät mitgeführt und gegen Verlust oder Defekt abgesichert wird. Ein Remote Mac erspart dieses Mitführen, bringt dafür Abhängigkeit von Netzwerkzugang, Fernzugriff und sicherer Kontoverwaltung mit sich. Für dauerhaft umfangreiche Entwicklungsarbeit oder Aufgaben, die verlässlich lokale Anschlüsse und Gerätezugriff benötigen, kann ein eigener Mac die passendere Wahl sein. Für einen begrenzten Release-Zeitraum kann Miete dagegen eine praktikable Möglichkeit sein, den eigenen Veröffentlichungsablauf unterwegs zu testen.
Wer die Rahmenbedingungen eines Remote-Arbeitsplatzes vorab einordnen möchte, findet in der Übersicht zu den Remote-Mac-Angeboten Informationen zum Zugang. Prüfen Sie vor dem Release zusätzlich die tatsächlichen Bereitstellungs- und Mietbedingungen für einen Mac, statt aus einer allgemeinen Produktbeschreibung auf eine erfolgreiche Notarisierung zu schließen. Wenn der eigene Build auf einem Remote Mac signiert, eingereicht, mit dem Ticket versehen und nach dem Download installiert werden kann, ist die Umgebung für diesen Ablauf geprüft. Wenn nicht, sollte sie zunächst nur als Testumgebung dienen und der lokale Veröffentlichungsweg verfügbar bleiben.