Настройка разработки для macOS
В этом руководстве описаны необходимые шаги для сборки и запуска приложения OpenClaw для macOS из исходного кода.
Предварительные требования
Перед сборкой приложения убедитесь, что у вас установлено следующее:
- Xcode 26.2+: Требуется для разработки на Swift.
- Node.js 22+ & pnpm: Требуются для шлюза, CLI и скриптов упаковки.
1. Установка зависимостей
Установите зависимости для всего проекта:
pnpm install
2. Сборка и упаковка приложения
Чтобы собрать приложение для macOS и упаковать его в dist/OpenClaw.app, выполните:
./scripts/package-mac-app.sh
Если у вас нет сертификата Apple Developer ID, скрипт автоматически использует ad-hoc подпись (-). Для режимов разработки, флагов подписи и устранения проблем с Team ID см. README приложения для macOS: https://github.com/openclaw/openclaw/blob/main/apps/macos/README.md
Примечание: Приложения с ad-hoc подписью могут вызывать предупреждения системы безопасности. Если приложение сразу же падает с ошибкой “Abort trap 6”, см. раздел Устранение неполадок.
3. Установка CLI
Приложение для macOS ожидает глобальную установку CLI openclaw для управления фоновыми задачами. Чтобы установить его (рекомендуется):
- Откройте приложение OpenClaw.
- Перейдите на вкладку настроек General.
- Нажмите “Install CLI”.
В качестве альтернативы установите его вручную:
npm install -g openclaw@<version>
Устранение неполадок
Сборка не удаётся: несоответствие инструментария или SDK
Сборка приложения для macOS ожидает последний macOS SDK и инструментарий Swift 6.2. Системные зависимости (обязательные):
- Последняя доступная версия macOS в Обновлении ПО (требуется для SDK Xcode 26.2)
- Xcode 26.2 (инструментарий Swift 6.2)
Проверки:
xcodebuild -version
xcrun swift --version
Если версии не совпадают, обновите macOS/Xcode и перезапустите сборку.
Приложение падает при выдаче разрешения
Если приложение падает при попытке разрешить доступ к Распознаванию речи или Микрофону, это может быть связано с повреждённым кэшем TCC или несоответствием подписи. Исправление:
-
Сбросьте разрешения TCC:
Копировать
tccutil reset All ai.openclaw.mac.debug -
Если это не помогло, временно измените
BUNDLE_IDв файлеscripts/package-mac-app.sh, чтобы заставить macOS создать «чистый» профиль.
Шлюз в статусе “Starting…” бесконечно
Если статус шлюза остаётся на “Starting…”, проверьте, не занимает ли порт «зомби»-процесс:
openclaw gateway status
openclaw gateway stop
# Если вы не используете LaunchAgent (режим разработки / ручной запуск), найдите слушатель:
lsof -nP -iTCP:18789 -sTCP:LISTEN
Если порт занят процессом ручного запуска, остановите этот процесс (Ctrl+C). В крайнем случае, завершите найденный выше PID.