macOS-Berechtigungen (TCC)
macOS-Berechtigungen sind fragil. TCC verknüpft eine Berechtigung mit der Code-Signatur der App, dem Bundle Identifier und dem Pfad auf der Festplatte. Wenn sich einer dieser Werte ändert, behandelt macOS die App als neu und kann Berechtigungen entfernen oder Abfragen ausblenden.
Voraussetzungen für stabile Berechtigungen
- Gleicher Pfad: Führe die App von einem festen Speicherort aus (bei OpenClaw:
dist/OpenClaw.app). - Gleicher Bundle Identifier: Wenn du die Bundle-ID änderst, entsteht 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 Certificate, damit die Signatur bei Rebuilds stabil bleibt.
Ad-hoc-Signaturen erzeugen bei jedem Build eine neue Identität. macOS vergisst dann vorherige Berechtigungen, und Abfragen können komplett verschwinden, bis die veralteten Einträge gelöscht werden.
Checkliste zur Wiederherstellung verschwundener Abfragen
- Beende die App.
- Entferne den App-Eintrag in den Systemeinstellungen unter Datenschutz & Sicherheit.
- Starte die App vom gleichen Pfad neu und erteile die Berechtigungen erneut.
- Falls die Abfrage immer noch nicht erscheint, setze die TCC-Einträge mit
tccutilzurück und versuche es nochmal. - Manche Berechtigungen erscheinen erst nach einem vollständigen macOS-Neustart wieder.
Beispiele für Resets (ersetze die Bundle-ID nach Bedarf):
sudo tccutil reset Accessibility bot.molt.mac
sudo tccutil reset ScreenCapture bot.molt.mac
sudo tccutil reset AppleEvents
Wenn du Berechtigungen testest, signiere immer mit einem echten Certificate. Ad-hoc-Builds sind nur für schnelle lokale Tests akzeptabel, bei denen Berechtigungen keine Rolle spielen.