macOS companion app
macOS-Berechtigungen
Berechtigungen unter macOS sind fragil. TCC verknüpft eine Berechtigungsfreigabe mit der Codesignatur der App, der Bundle-ID und dem Pfad auf dem Datenträger. Wenn sich einer dieser Punkte ändert, behandelt macOS die App als neu und kann Prompts verwerfen oder ausblenden.
Anforderungen für stabile Berechtigungen
- Gleicher Pfad: Führen Sie die App von einem festen Ort aus (für OpenClaw:
dist/OpenClaw.app). - Gleiche Bundle-ID: Das Ändern der Bundle-ID erzeugt eine neue Berechtigungsidentität.
- Signierte App: Nicht signierte oder ad-hoc signierte Builds behalten Berechtigungen nicht bei.
- Konsistente Signatur: Verwenden Sie ein echtes Apple-Development- oder Developer-ID-Zertifikat, damit die Signatur über Rebuilds hinweg stabil bleibt.
Ad-hoc-Signaturen erzeugen bei jedem Build eine neue Identität. macOS vergisst dadurch frühere Freigaben, und Prompts können vollständig verschwinden, bis die veralteten Einträge bereinigt werden.
Wiederherstellungs-Checkliste, wenn Prompts verschwinden
- Beenden Sie die App.
- Entfernen Sie den App-Eintrag in Systemeinstellungen -> Datenschutz & Sicherheit.
- Starten Sie die App vom selben Pfad erneut und erteilen Sie die Berechtigungen erneut.
- Wenn der Prompt weiterhin nicht erscheint, setzen Sie TCC-Einträge mit
tccutilzurück und versuchen Sie es erneut. - Manche Berechtigungen erscheinen erst nach einem vollständigen Neustart von macOS wieder.
Beispiel-Resets (Bundle-ID bei Bedarf ersetzen):
sudo tccutil reset Accessibility ai.openclaw.mac
sudo tccutil reset ScreenCapture ai.openclaw.mac
sudo tccutil reset AppleEvents
Berechtigungen für Dateien und Ordner (Desktop/Dokumente/Downloads)
macOS kann außerdem Desktop, Dokumente und Downloads für Terminal-/Hintergrundprozesse einschränken. Wenn Datei-Lesevorgänge oder Verzeichnisauflistungen hängen bleiben, erteilen Sie Zugriff für denselben Prozesskontext, der Dateioperationen ausführt (zum Beispiel Terminal/iTerm, von LaunchAgent gestartete App oder SSH-Prozess).
Workaround: Verschieben Sie Dateien in den OpenClaw-Workspace (~/.openclaw/workspace), wenn Sie Berechtigungen pro Ordner vermeiden möchten.
Wenn Sie Berechtigungen testen, signieren Sie immer mit einem echten Zertifikat. Ad-hoc- Builds sind nur für schnelle lokale Läufe akzeptabel, bei denen Berechtigungen keine Rolle spielen.