Permisos de macOS
La concesión de permisos de macOS es frágil. TCC asocia una concesión de permiso con la firma de código de la aplicación, el identificador de paquete y la ruta en disco. Si alguno de estos cambia, macOS trata la aplicación como nueva y puede eliminar u ocultar los avisos.
Requisitos para permisos estables
Sección titulada «Requisitos para permisos estables»- Misma ruta: ejecute la aplicación desde una ubicación fija (para OpenClaw,
dist/OpenClaw.app). - Mismo identificador de paquete: cambiar el ID del paquete crea una nueva identidad de permiso.
- Aplicación firmada: las compilaciones sin firmar o con firma ad-hoc no persisten los permisos.
- Firma coherente: utilice 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 avisos pueden desaparecer por completo hasta que se borren las entradas obsoletas.
Concesiones de Accesibilidad para Node y tiempos de ejecución de CLI
Sección titulada «Concesiones de Accesibilidad para Node y tiempos de ejecución de CLI»Es preferible otorgar Accesibilidad a OpenClaw.app, Peekaboo.app u otro asistente
firmado con su propio identificador de paquete en lugar de a un binario
node genérico.
macOS TCC otorga Accesibilidad a la identidad del código del proceso que ve. Si un
flujo de trabajo de Homebrew, nvm, pnpm o npm hace que un ejecutable node
compartido reciba Accesibilidad, cualquier paquete de JavaScript iniciado a través
de ese mismo ejecutable puede heredar privilegios de automatización de la GUI.
Trate una entrada node en Configuración del Sistema como un permiso amplio
para ese tiempo de ejecución de Node, no como un permiso para un solo paquete npm.
Evite otorgar Accesibilidad a node a menos que confíe en todos los
scripts y paquetes iniciados a través de esa instalación exacta de Node.
Si otorgó Accesibilidad accidentalmente a node, elimine esa entrada de
Configuración del Sistema -> Privacidad y seguridad -> Accesibilidad. Luego,
otorgue el permiso a la aplicación o asistente firmado que debe ser el propietario
de la automatización de la interfaz de usuario.
Lista de verificación de recuperación cuando desaparecen los avisos
Sección titulada «Lista de verificación de recuperación cuando desaparecen los avisos»- Cierra la aplicación.
- Elimine la entrada de la aplicación en Configuración del Sistema -> Privacidad y seguridad.
- Vuelva a iniciar la aplicación desde la misma ruta y vuelva a otorgar los permisos.
- Si el aviso aún no aparece, restablezca las entradas de TCC con
tccutile inténtelo de nuevo. - Algunos permisos solo reaparecen después de un reinicio completo de macOS.
Ejemplos de restablecimientos (reemplace el ID del paquete según sea necesario):
sudo tccutil reset Accessibility ai.openclaw.macsudo tccutil reset ScreenCapture ai.openclaw.macsudo tccutil reset AppleEventsPermisos de archivos y carpetas (Escritorio/Documentos/Descargas)
Sección titulada «Permisos de archivos y carpetas (Escritorio/Documentos/Descargas)»macOS también puede restringir el acceso a Escritorio, Documentos y Descargas para procesos de terminal/en segundo plano. Si las lecturas de archivos o las listados de directorios se bloquean, otorgue acceso al mismo contexto de proceso que realiza las operaciones de archivos (por ejemplo, Terminal/iTerm, aplicación iniciada por LaunchAgent o proceso SSH).
Solución alternativa: mueva los archivos al espacio de trabajo de OpenClaw (~/.openclaw/workspace) si desea evitar concesiones por carpeta.
Si está probando permisos, firme siempre con un certificado real. Las compilaciones ad-hoc solo son aceptables para ejecuciones locales rápidas donde los permisos no importan.