Permisos de macOS (TCC)
Los permisos concedidos en macOS son frágiles. TCC asocia la concesión de un permiso con la firma de código de la app, el identificador de bundle y la ruta en disco. Si cualquiera de estos cambia, macOS trata la app como nueva y puede descartar u ocultar los prompts.
Requisitos para permisos estables
- Misma ruta: ejecuta la app desde una ubicación fija (para OpenClaw,
dist/OpenClaw.app). - Mismo identificador de bundle: cambiar el bundle ID crea una nueva identidad de permisos.
- App firmada: los builds sin firmar o con firma ad-hoc no persisten permisos.
- Firma consistente: usa un certificado real de Apple Development o Developer ID para que la firma se mantenga estable entre recompilaciones.
Las firmas ad-hoc generan una nueva identidad en cada compilación. macOS olvidará las concesiones anteriores, y los prompts pueden desaparecer por completo hasta que se limpien las entradas obsoletas.
Lista de recuperación cuando los prompts desaparecen
- Cierra la app.
- Elimina la entrada de la app en Preferencias del Sistema → Privacidad y Seguridad.
- Vuelve a abrir la app desde la misma ruta y concede los permisos de nuevo.
- Si el prompt sigue sin aparecer, restablece las entradas TCC con
tccutile inténtalo de nuevo. - Algunos permisos solo reaparecen después de un reinicio completo de macOS.
Ejemplos de restablecimiento (reemplaza el bundle ID según sea necesario):
sudo tccutil reset Accessibility ai.openclaw.mac
sudo tccutil reset ScreenCapture ai.openclaw.mac
sudo tccutil reset AppleEvents
Permisos de archivos y carpetas (Escritorio/Documentos/Descargas)
macOS también puede restringir el acceso a Escritorio, Documentos y Descargas para procesos en terminal/segundo plano. Si las lecturas de archivos o listados de directorios se cuelgan, concede acceso al mismo contexto de proceso que realiza operaciones de archivos (por ejemplo Terminal/iTerm, app lanzada por LaunchAgent o proceso SSH).
Alternativa: mueve los archivos al workspace de OpenClaw (~/.openclaw/workspace) si quieres evitar concesiones por carpeta.
Si estás probando permisos, siempre firma con un certificado real. Los builds ad-hoc solo son aceptables para ejecuciones locales rápidas donde los permisos no importan.