Перейти к основному содержанию

Разрешения macOS (TCC)

Выдача разрешений в macOS хрупка. TCC связывает выданное разрешение с кодовой подписью приложения, идентификатором пакета и путём на диске. Если что‑либо из этого меняется, macOS считает приложение новым и может сбросить или скрыть запросы.

Требования для стабильных разрешений

  • Тот же путь: запускайте приложение из фиксированного расположения (для OpenClaw — dist/OpenClaw.app).
  • Тот же идентификатор пакета: изменение bundle ID создаёт новую идентичность разрешений.
  • Подписанное приложение: неподписанные или подписанные ad-hoc сборки не сохраняют разрешения.
  • Стабильная подпись: используйте реальный сертификат Apple Development или Developer ID, чтобы подпись оставалась стабильной между пересборками.
Ad-hoc подписи создают новую идентичность при каждой сборке. macOS забудет ранее выданные разрешения, а запросы могут полностью исчезнуть, пока устаревшие записи не будут очищены.

Контрольный список восстановления, когда запросы исчезают

  1. Закройте приложение.
  2. Удалите запись приложения в «Системные настройки» -> «Конфиденциальность и безопасность».
  3. Запустите приложение снова из того же пути и повторно выдайте разрешения.
  4. Если запрос всё ещё не появляется, сбросьте записи TCC с помощью tccutil и попробуйте снова.
  5. Некоторые разрешения появляются снова только после полной перезагрузки macOS.
Примеры сброса (при необходимости замените bundle ID):
sudo tccutil reset Accessibility bot.molt.mac
sudo tccutil reset ScreenCapture bot.molt.mac
sudo tccutil reset AppleEvents

Разрешения на файлы и папки (Рабочий стол/Документы/Загрузки)

macOS также может ограничивать доступ к Рабочему столу, Документам и Загрузкам для терминальных/фоновых процессов. Если чтение файлов или вывод списка каталогов зависает, предоставьте доступ тому же контексту процесса, который выполняет файловые операции (например, Terminal/iTerm, приложение, запущенное через LaunchAgent, или процесс SSH). Обходной путь: переместите файлы в рабочее пространство OpenClaw (~/.openclaw/workspace), если вы хотите избежать выдачи разрешений для каждой папки. Если вы тестируете разрешения, всегда подписывайте приложение реальным сертификатом. Ad-hoc сборки допустимы только для быстрых локальных запусков, где разрешения не имеют значения.