macOS companion app

Дозволи macOS

Надання дозволів у macOS є крихким. TCC пов’язує наданий дозвіл із підписом коду застосунку, ідентифікатором bundle та шляхом на диску. Якщо будь-що з цього змінюється, macOS вважає застосунок новим і може скинути або приховати запити дозволів.

Вимоги для стабільних дозволів

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

Ad-hoc-підписи генерують нову ідентичність при кожній збірці. macOS забуде попередні надані дозволи, а запити можуть повністю зникнути, доки не буде очищено застарілі записи.

Список відновлення, коли запити зникають

  1. Закрийте застосунок.
  2. Видаліть запис застосунку в System Settings -> Privacy & Security.
  3. Повторно запустіть застосунок із того самого шляху й знову надайте дозволи.
  4. Якщо запит усе ще не з’являється, скиньте записи TCC за допомогою tccutil і спробуйте ще раз.
  5. Деякі дозволи знову з’являються лише після повного перезапуску macOS.

Приклади скидання (за потреби замініть bundle ID):

sudo tccutil reset Accessibility ai.openclaw.mac
sudo tccutil reset ScreenCapture ai.openclaw.mac
sudo tccutil reset AppleEvents

Дозволи на файли й папки (Desktop/Documents/Downloads)

macOS також може обмежувати доступ до Desktop, Documents і Downloads для процесів термінала/фонових процесів. Якщо читання файлів або перегляд каталогів зависає, надайте доступ тому самому контексту процесу, який виконує файлові операції (наприклад, Terminal/iTerm, застосунок, запущений через LaunchAgent, або SSH-процес).

Обхідний шлях: перемістіть файли до робочого простору OpenClaw (~/.openclaw/workspace), якщо хочете уникнути окремих дозволів для кожної папки.

Якщо ви тестуєте дозволи, завжди підписуйте справжнім сертифікатом. Ad-hoc збірки припустимі лише для швидких локальних запусків, де дозволи не мають значення.

Пов’язане