Настройка разработчика macOS

Это руководство охватывает необходимые шаги для сборки и запуска приложения OpenClaw для macOS из исходного кода.

Предварительные требования

Перед сборкой приложения убедитесь, что у вас установлено следующее:

  1. Xcode 26.2+: Требуется для разработки на Swift.
  2. Node.js 22+ и pnpm: Требуется для gateway, 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 для управления фоновыми задачами.

Для установки (рекомендуется):

  1. Откройте приложение OpenClaw.
  2. Перейдите на вкладку настроек Общие.
  3. Нажмите "Установить CLI".

Альтернативно, установите вручную:

npm install -g openclaw@<version>

Устранение неполадок

Сборка не удается: несоответствие Toolchain или SDK

Сборка приложения macOS требует последнюю macOS SDK и Swift 6.2 toolchain.

Системные зависимости (обязательно):

  • Последняя версия macOS, доступная в Обновлении ПО (требуется для Xcode 26.2 SDK)
  • Xcode 26.2 (Swift 6.2 toolchain)

Проверки:

xcodebuild -version
xcrun swift --version

Если версии не совпадают, обновите macOS/Xcode и повторите сборку.

Приложение аварийно завершается при предоставлении разрешения

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

Исправление:

  1. Сбросьте разрешения TCC:
    tccutil reset All bot.molt.mac.debug
    
  2. Если это не помогает, временно измените BUNDLE_ID в scripts/package-mac-app.sh, чтобы заставить macOS использовать "чистый лист".

Gateway "Starting..." бесконечно

Если статус gateway остается на "Starting...", проверьте, не удерживает ли зомби-процесс порт:

openclaw gateway status
openclaw gateway stop

# Если вы не используете LaunchAgent (режим разработки / ручные запуски), найдите слушателя:
lsof -nP -iTCP:18789 -sTCP:LISTEN

Если ручной запуск удерживает порт, остановите этот процесс (Ctrl+C). В крайнем случае завершите PID, который вы нашли выше.