macOS companion app
Дозволи macOS
Надання дозволів у macOS є крихким. TCC пов’язує наданий дозвіл із підписом коду застосунку, ідентифікатором bundle та шляхом на диску. Якщо будь-що з цього змінюється, macOS вважає застосунок новим і може скинути або приховати запити дозволів.
Вимоги для стабільних дозволів
- Той самий шлях: запускайте застосунок із фіксованого місця (для OpenClaw —
dist/OpenClaw.app). - Той самий ідентифікатор bundle: зміна bundle ID створює нову ідентичність дозволів.
- Підписаний застосунок: непідписані або ad-hoc-підписані збірки не зберігають дозволи.
- Узгоджений підпис: використовуйте справжній сертифікат Apple Development або Developer ID, щоб підпис залишався стабільним між перебудовами.
Ad-hoc-підписи генерують нову ідентичність при кожній збірці. macOS забуде попередні надані дозволи, а запити можуть повністю зникнути, доки не буде очищено застарілі записи.
Список відновлення, коли запити зникають
- Закрийте застосунок.
- Видаліть запис застосунку в System Settings -> Privacy & Security.
- Повторно запустіть застосунок із того самого шляху й знову надайте дозволи.
- Якщо запит усе ще не з’являється, скиньте записи TCC за допомогою
tccutilі спробуйте ще раз. - Деякі дозволи знову з’являються лише після повного перезапуску 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 збірки припустимі лише для швидких локальних запусків, де дозволи не мають значення.