Разрешения macOS (TCC)
Выдача разрешений в macOS хрупка. TCC связывает выданное разрешение с кодовой подписью приложения, идентификатором пакета и путём на диске. Если что‑либо из этого меняется, macOS считает приложение новым и может сбросить или скрыть запросы.Требования для стабильных разрешений
- Тот же путь: запускайте приложение из фиксированного расположения (для OpenClaw —
dist/OpenClaw.app). - Тот же идентификатор пакета: изменение bundle ID создаёт новую идентичность разрешений.
- Подписанное приложение: неподписанные или подписанные ad-hoc сборки не сохраняют разрешения.
- Стабильная подпись: используйте реальный сертификат Apple Development или Developer ID, чтобы подпись оставалась стабильной между пересборками.
Контрольный список восстановления, когда запросы исчезают
- Закройте приложение.
- Удалите запись приложения в «Системные настройки» -> «Конфиденциальность и безопасность».
- Запустите приложение снова из того же пути и повторно выдайте разрешения.
- Если запрос всё ещё не появляется, сбросьте записи TCC с помощью
tccutilи попробуйте снова. - Некоторые разрешения появляются снова только после полной перезагрузки macOS.
Разрешения на файлы и папки (Рабочий стол/Документы/Загрузки)
macOS также может ограничивать доступ к Рабочему столу, Документам и Загрузкам для терминальных/фоновых процессов. Если чтение файлов или вывод списка каталогов зависает, предоставьте доступ тому же контексту процесса, который выполняет файловые операции (например, Terminal/iTerm, приложение, запущенное через LaunchAgent, или процесс SSH). Обходной путь: переместите файлы в рабочее пространство OpenClaw (~/.openclaw/workspace), если вы хотите избежать выдачи разрешений для каждой папки.
Если вы тестируете разрешения, всегда подписывайте приложение реальным сертификатом. Ad-hoc
сборки допустимы только для быстрых локальных запусков, где разрешения не имеют значения.