
Alessandro Frank
CTO
Dieser Guide erklärt, wie du macOS .app Bundles richtig signierst und notarisierst, damit deine Apps sicher und problemlos auf anderen Macs starten.
Ich habe herausgefunden, wie man Source Code in ein GUI-Binary packen kann (in meinem Fall mit fyne).
Dann trat ein Problem auf: Auf anderen Rechnern war die App entweder gesperrt oder wurde als „beschädigt“ angezeigt.
Damit es wirklich funktioniert, musst du ein paar Schritte erledigen.
Hinweis: Das funktioniert nur, wenn die Apple-Entwicklerumgebung bereits eingerichtet ist – in diesem Fall hast du wahrscheinlich schon ähnliche Snippets irgendwo liegen.
sign-notarize: build-gui
codesign --force --deep --timestamp --options runtime --sign "$(CERT_NAME)" "$(BUILD_DIR)/$(DOTAPP)"
zip -r "$(BUILD_DIR)/$(DOTAPP).zip" "$(BUILD_DIR)/$(DOTAPP)"
xcrun notarytool submit "$(BUILD_DIR)/$(DOTAPP).zip" --keychain-profile "notarytool-profile" --wait
xcrun stapler staple "$(BUILD_DIR)/$(DOTAPP)"
rm "$(BUILD_DIR)/$(DOTAPP).zip"
zip -r "$(BUILD_DIR)/$(DOTAPP)-signed.zip" "$(BUILD_DIR)/$(DOTAPP)"
Die Schritte sind immer die gleichen:
Build → Signieren → Zip → Notarisieren → „Staple“ → erneut zippen → Verteilen.
Falls du dich fragst: „Welches Zertifikat?“ – dir wird das nicht gefallen.
Du brauchst zwingend ein Apple Developer Account für 99 $ pro Jahr. Daran führt kein Weg vorbei.
Der Zertifikatsname ist das, was in --sign "Certificate Name"
gehört.
Installiere die Xcode Command Line Tools:
xcode-select --install
# Überprüfen, ob xcrun verfügbar ist
xcrun --version
Notarisierungs-Credentials einmalig speichern:
xcrun notarytool store-credentials "notarytool-profile" \
--apple-id "your@apple-id.com" \
--team-id "YOUR_TEAM_ID" \
--password "app-specific-password"
⚠️ Das Passwort ist ein app-spezifisches Passwort von appleid.apple.com, nicht dein normales Apple-ID-Passwort.
# App signieren
codesign --force --deep --timestamp --options runtime \
--sign "Developer ID Application: Your Name (TEAM_ID)" \
"myapp.app"
# Für Notarisierung zippen
zip -r "myapp.app.zip" "myapp.app"
# Zur Notarisierung einreichen (dauert ca. 1–3 Minuten)
xcrun notarytool submit "myapp.app.zip" \
--keychain-profile "notarytool-profile" --wait
# Erfolgs-Output sieht z. B. so aus:
# "Processing complete. Submission ID: xxx-xxx-xxx"
# "status: Accepted"
# Notarisierung „stapeln“
xcrun stapler staple "myapp.app"
# Aufräumen und finale Distributable erstellen
rm "myapp.app.zip"
zip -r "myapp-signed.zip" "myapp.app"
--deep
Flag probieren, Entitlements prüfencodesign -dv --verbose=4
Das Setup ist beim ersten Mal schmerzhaft – danach wird es trivial.
Die 99 $ sind Apples „Developer-Steuer“: Entweder bezahlen oder auf localhost bleiben.
Schauen Sie sich weitere, spannende Beiträge rund um die Iridium Works, Webdesign, Softwareentwicklung, IT-Beratung und Künstliche Intelligenz an.