Permisos de macOS (TCC)
Las concesiones de permisos en macOS son frágiles. TCC asocia una concesión de permiso con la firma de código de la app, el identificador del bundle y la ruta en disco. Si cualquiera de ellos 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 ID del bundle crea una nueva identidad de permiso.
- App firmada: las compilaciones sin firma o firmadas ad hoc no conservan permisos.
- Firma coherente: usa un certificado real de Apple Development o Developer ID para que la firma se mantenga estable entre reconstrucciones.
Lista de recuperación cuando desaparecen los prompts
- Cierra la app.
- Elimina la entrada de la app en System Settings -> Privacy & Security.
- Vuelve a iniciar la app desde la misma ruta y vuelve a conceder los permisos.
- Si el prompt sigue sin aparecer, restablece las entradas de TCC con
tccutily vuelve a intentarlo. - Algunos permisos solo reaparecen después de un reinicio completo de macOS.
Permisos de archivos y carpetas (Desktop/Documents/Downloads)
macOS también puede restringir Desktop, Documents y Downloads para procesos de terminal/en segundo plano. Si las lecturas de archivos o los listados de directorios se bloquean, concede acceso al mismo contexto de proceso que realiza las operaciones de archivo (por ejemplo Terminal/iTerm, app iniciada por LaunchAgent o proceso SSH). Solución alternativa: mueve los archivos al espacio de trabajo de OpenClaw (~/.openclaw/workspace) si quieres evitar concesiones por carpeta.
Si estás probando permisos, firma siempre con un certificado real. Las compilaciones ad hoc
solo son aceptables para ejecuciones locales rápidas donde los permisos no importan.