---
read_when:
    - Отладка отсутствующих или зависших запросов разрешений macOS
    - Решение о предоставлении Accessibility для node или среды выполнения CLI
    - Упаковка или подпись приложения для macOS
    - Изменение идентификаторов пакетов или путей установки приложения
summary: Требования к сохранению разрешений macOS (TCC) и подписи
title: Разрешения macOS
x-i18n:
    generated_at: "2026-06-28T23:12:48Z"
    model: gpt-5.5
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: 7b7e21c53bff16c3023e2b6509894717c3d0ef96524951b0d0c5975d2fc91019
    source_path: platforms/mac/permissions.md
    workflow: 16
---

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

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

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

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

## Разрешения Accessibility для сред Node и CLI

Предпочитайте выдавать Accessibility приложению OpenClaw.app, Peekaboo.app или другому подписанному
помощнику с собственным идентификатором пакета, а не обычному бинарному файлу `node`.

macOS TCC выдает Accessibility кодовой идентичности процесса, который он видит. Если рабочий процесс
Homebrew, nvm, pnpm или npm приводит к тому, что общий исполняемый файл `node`
получает Accessibility, любой JavaScript-пакет, запущенный через тот же
исполняемый файл, может унаследовать привилегии автоматизации GUI.

Считайте запись `node` в System Settings широким разрешением для этой среды Node,
а не разрешением для одного npm-пакета. Не выдавайте Accessibility для
`node`, если вы не доверяете каждому скрипту и пакету, запускаемому через эту точную
установку Node.

Если вы случайно выдали Accessibility для `node`, удалите эту запись из
System Settings -> Privacy & Security -> Accessibility. Затем выдайте разрешение подписанному
приложению или помощнику, который должен владеть автоматизацией UI.

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

1. Закройте приложение.
2. Удалите запись приложения в System Settings -> Privacy & Security.
3. Перезапустите приложение из того же пути и выдайте разрешения заново.
4. Если запрос все еще не появляется, сбросьте записи TCC с помощью `tccutil` и попробуйте снова.
5. Некоторые разрешения снова появляются только после полного перезапуска macOS.

Примеры сброса (замените ID пакета при необходимости):

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

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

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

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

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

## См. также

- [Приложение macOS](/ru/platforms/macos)
- [Подписание macOS](/ru/platforms/mac/signing)
