macOS companion app

Дозволи macOS

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

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

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

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

Дозволи Доступності для середовищ виконання Node і CLI

Надавайте перевагу наданню Доступності OpenClaw.app, Peekaboo.app або іншому підписаному помічнику з власним ідентифікатором пакета замість загального бінарного файлу node.

macOS TCC надає Доступність ідентичності коду процесу, який він бачить. Якщо робочий процес Homebrew, nvm, pnpm або npm призводить до того, що спільний виконуваний файл node отримує Доступність, будь-який JavaScript-пакет, запущений через той самий виконуваний файл, може успадкувати привілеї автоматизації GUI.

Вважайте запис node у Системних параметрах широким дозволом для цього середовища виконання Node, а не дозволом для одного пакета npm. Не надавайте Доступність node, якщо ви не довіряєте кожному скрипту та пакету, запущеному через саме це встановлення Node.

Якщо ви випадково надали Доступність node, видаліть цей запис із Системні параметри -> Приватність і безпека -> Доступність. Потім надайте дозвіл підписаному застосунку або помічнику, який має відповідати за автоматизацію UI.

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

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

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

bash
sudo tccutil reset Accessibility ai.openclaw.macsudo tccutil reset ScreenCapture ai.openclaw.macsudo tccutil reset AppleEvents

Дозволи на файли й папки (Робочий стіл/Документи/Завантаження)

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

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

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

Пов’язане

Was this useful?
On this page

On this page