OpenClaw macOS Releases mit Sparkle automatisieren
Apps für macOS zu veröffentlichen, kann sich oft wie ein Hindernislauf anfühlen. Zwischen Code Signing, Notarization und der Einrichtung eines zuverlässigen Update-Mechanismus geht viel Zeit verloren, die eigentlich in den Code fließen sollte. Besonders das Management von Auto-Updates stellt Entwickler oft vor Herausforderungen, wenn der Prozess nicht von Anfang an sauber definiert ist.
Wenn du deine App direkt an Nutzer verteilst, ohne den Mac App Store zu nutzen, brauchst du eine Lösung, die sicher ist und Gatekeeper-Warnungen vermeidet. Sparkle ist hier der Standard, erfordert aber ein präzises Setup bei den Zertifikaten und dem Appcast-Feed, damit die Updates reibungslos auf den Rechnern deiner Nutzer landen.
Voraussetzungen
Abschnitt betitelt „Voraussetzungen“- Ein installiertes Developer ID Application Zertifikat (Beispiel:
Developer ID Application: <Developer Name> (<TEAMID>)). - Den Pfad zum Sparkle Private Key in der Umgebungsvariable
SPARKLE_PRIVATE_KEY_FILE(Pfad zu deinem Sparkle ed25519 Private Key). Prüfe deine~/.profile, falls dieser fehlt. - Notary Credentials (Keychain-Profil oder API Key) für
xcrun notarytool. Erstelle das Profilopenclaw-notarywie folgt:Terminal-Fenster echo "$APP_STORE_CONNECT_API_KEY_P8" | sed 's/\\n/\n/g' > /tmp/openclaw-notary.p8xcrun notarytool store-credentials "openclaw-notary" --key /tmp/openclaw-notary.p8 --key-id "$APP_STORE_CONNECT_KEY_ID" --issuer "$APP_STORE_CONNECT_ISSUER_ID" - Installierte pnpm Abhängigkeiten über
pnpm install --config.node-linker=hoisted.
Schnellstart
Abschnitt betitelt „Schnellstart“In 5 Minuten zum signierten Release:
-
Build & Package: Starte das Build-Script vom Repo-Root aus. Setze die
BUNDLE_IDundAPP_VERSION, damit der Sparkle-Feed aktiviert wird.Terminal-Fenster BUNDLE_ID=ai.openclaw.mac \APP_VERSION=2026.3.7 \BUILD_CONFIG=release \SIGN_IDENTITY="Developer ID Application: <Developer Name> (<TEAMID>)" \scripts/package-mac-app.sh -
Zip-Archiv erstellen: Nutze
ditto, um die Resource Forks für den Sparkle-Support zu erhalten.Terminal-Fenster ditto -c -k --sequesterRsrc --keepParent dist/OpenClaw.app dist/OpenClaw-2026.3.7.zip -
Notarization: Nutze das Distribution-Script, um die App zu bauen, zu notarisieren und zu stapeln.
Terminal-Fenster NOTARIZE=1 NOTARYTOOL_PROFILE=openclaw-notary \BUNDLE_ID=ai.openclaw.mac \APP_VERSION=2026.3.7 \BUILD_CONFIG=release \SIGN_IDENTITY="Developer ID Application: <Developer Name> (<TEAMID>)" \scripts/package-mac-dist.sh -
Appcast Eintrag: Generiere den Feed-Eintrag mit formatierten Release Notes aus der
CHANGELOG.md.Terminal-Fenster SPARKLE_PRIVATE_KEY_FILE=/path/to/ed25519-private-key scripts/make_appcast.sh dist/OpenClaw-2026.3.7.zip https://raw.githubusercontent.com/openclaw/openclaw/main/appcast.xml
Fehlerbehebung
Abschnitt betitelt „Fehlerbehebung“- Update wird nicht erkannt: Sparkle benötigt für
APP_BUILD(entsprichtCFBundleVersion) zwingend numerische und monotone Werte. Verwende keine Suffixe wie-beta. WennAPP_BUILDweggelassen wird, generiert das Script automatisch einen Wert im FormatYYYYMMDDNN. - Private Key fehlt: Falls Fehler beim Signieren des Appcasts auftreten, stelle sicher, dass
SPARKLE_PRIVATE_KEY_FILEin deiner Shell-Umgebung korrekt gesetzt ist. Überprüfe dies mitecho $SPARKLE_PRIVATE_KEY_FILE.
Hast du Fragen zum Setup? Unser AI Setup Assistant hilft dir gerne weiter.
Nächste Schritte
Abschnitt betitelt „Nächste Schritte“OpenClaw Expert
Noch festgefahren?
Wenn diese Seite nicht hilft, frage OpenClaw Expert nach Schritt-fuer-Schritt-Loesungen.