macOS companion app
Permessi macOS
Le concessioni dei permessi macOS sono fragili. TCC associa una concessione di permesso alla firma del codice dell'app, all'identificatore del bundle e al percorso su disco. Se uno di questi cambia, macOS tratta l'app come nuova e può eliminare o nascondere i prompt.
Requisiti per permessi stabili
- Stesso percorso: esegui l'app da una posizione fissa (per OpenClaw,
dist/OpenClaw.app). - Stesso identificatore del bundle: cambiare il bundle ID crea una nuova identità di permesso.
- App firmata: le build non firmate o firmate ad hoc non mantengono i permessi.
- Firma coerente: usa un vero certificato Apple Development o Developer ID in modo che la firma resti stabile tra una build e l'altra.
Le firme ad hoc generano una nuova identità a ogni build. macOS dimenticherà le concessioni precedenti, e i prompt possono scomparire del tutto finché le voci obsolete non vengono eliminate.
Checklist di recupero quando i prompt scompaiono
- Chiudi l'app.
- Rimuovi la voce dell'app in Impostazioni di Sistema -> Privacy e Sicurezza.
- Riavvia l'app dallo stesso percorso e concedi di nuovo i permessi.
- Se il prompt continua a non apparire, reimposta le voci TCC con
tccutile riprova. - Alcuni permessi riappaiono solo dopo un riavvio completo di macOS.
Esempi di reset (sostituisci il bundle ID secondo necessità):
sudo tccutil reset Accessibility ai.openclaw.mac
sudo tccutil reset ScreenCapture ai.openclaw.mac
sudo tccutil reset AppleEvents
Permessi per file e cartelle (Desktop/Documents/Downloads)
macOS può anche limitare Desktop, Documents e Downloads per processi terminal/background. Se le letture dei file o gli elenchi delle directory restano bloccati, concedi l'accesso allo stesso contesto di processo che esegue le operazioni sui file (ad esempio Terminal/iTerm, app avviata da LaunchAgent o processo SSH).
Soluzione alternativa: sposta i file nel workspace OpenClaw (~/.openclaw/workspace) se vuoi evitare concessioni per singola cartella.
Se stai testando i permessi, firma sempre con un certificato reale. Le build ad hoc sono accettabili solo per esecuzioni locali rapide in cui i permessi non contano.