macOS-Berechtigungen (TCC)
macOS-Berechtigungszusagen sind fragil. TCC verknüpft eine Berechtigungszusage mit der Code-Signatur, der Bundle-ID und dem Pfad auf der Festplatte. Wenn sich eines davon ändert, behandelt macOS die App als neu und kann Prompts verwerfen oder ausblenden.
Voraussetzungen für stabile Berechtigungen
- Gleicher Pfad: Starte die App von einem festen Ort aus (bei OpenClaw
dist/OpenClaw.app). - Gleiche Bundle-ID: Eine Änderung der Bundle-ID erstellt eine neue Berechtigungsidentität.
- Signierte App: Unsignierte oder ad-hoc signierte Builds speichern Berechtigungen nicht dauerhaft.
- Konsistente Signatur: Verwende 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 frühere Zusagen, und Prompts können komplett verschwinden, bis die veralteten Einträge gelöscht werden.
Wiederherstellungs-Checkliste wenn Prompts verschwinden
- App beenden.
- App-Eintrag in Systemeinstellungen → Datenschutz & Sicherheit entfernen.
- App vom selben Pfad neu starten und Berechtigungen erneut erteilen.
- Falls der Prompt immer noch nicht erscheint, TCC-Einträge mit
tccutilzurücksetzen und erneut versuchen. - Manche Berechtigungen erscheinen erst nach einem vollständigen macOS-Neustart wieder.
Beispiel-Resets (Bundle-ID nach Bedarf anpassen):
sudo tccutil reset Accessibility ai.openclaw.mac
sudo tccutil reset ScreenCapture ai.openclaw.mac
sudo tccutil reset AppleEvents
Dateien- und Ordner-Berechtigungen (Schreibtisch/Dokumente/Downloads)
macOS kann auch Schreibtisch, Dokumente und Downloads für Terminal/Hintergrundprozesse beschränken. Falls Datei-Reads oder Verzeichnislistings hängen, erteile dem Prozesskontext, der Dateioperationen durchführt, den Zugriff (zum Beispiel Terminal/iTerm, per LaunchAgent gestartete App oder SSH-Prozess).
Workaround: Verschiebe Dateien in den OpenClaw-Workspace (~/.openclaw/workspace), wenn du ordnerspezifische Zusagen vermeiden möchtest.
Wenn du Berechtigungen testest, signiere immer mit einem echten Zertifikat. Ad-hoc-Builds sind nur für schnelle lokale Testläufe akzeptabel, bei denen Berechtigungen keine Rolle spielen.