macOSСредняя

Ошибка xcode-select: как исправить 'tool requires Xcode' и проблемы с путями

Статья подробно разбирает типичные ошибки утилиты xcode-select на macOS: неверные пути, отсутствие Xcode и конфликты инструментов. Вы получите проверенные способы быстрого восстановления работы терминала и сборки проектов.

Обновлено 16 февраля 2026 г.
10-15 мин
Низкая
FixPedia Team
Применимо к:macOS 10.15 (Catalina) и новееXcode 12.0 и новееXcode Command Line Tools

Что означает ошибка xcode-select

Утилита xcode-select управляет активной разработческой папкой (Developer Directory) на macOS. Эта папка содержит инструменты вроде xcodebuild, clang, git и другие компоненты, необходимые для сборки ПО из исходников.

Типичные сообщения об ошибках:

xcode-select: error: tool 'xcodebuild' requires Xcode

Эта ошибка означает, что система не может найти исполняемый файл xcodebuild в текущем Developer Directory. Другие симптомы:

  • Команды make, gcc, git (если они из CLT) не работают.
  • Homebrew при установке пакетов жалуется на отсутствие Xcode Command Line Tools.
  • Скрипты сборки (CMake, autoconf) падают с "command not found".

Ошибка возникает, когда xcode-select указывает на несуществующий или неполный путь, либо когда инструменты не установлены вообще.

Причины возникновения

  1. Неверный путь после обновления macOS
    При крупном обновлении системы (например, с macOS Catalina на Big Sur или Ventura) путь к Developer Directory часто сбрасывается. Старый путь (например, /Applications/Xcode.app/Contents/Developer) может перестать существовать, если Xcode был обновлён или перемещён.
  2. Удаление или перемещение Xcode/Command Line Tools
    Если вы вручную удалили папку Xcode из /Applications или очистили CLT, но не обновили путь через xcode-select, система будет пытаться использовать несуществующие файлы.
  3. Command Line Tools не установлены
    Чистая установка macOS не включает разработческие инструменты. Некоторые приложения (например, Homebrew) требуют их наличия. Если CLT не установлены, xcode-select не имеет корректного целевого пути.
  4. Повреждение symlink Developer Directory
    В редких случаях символьная ссылка /Library/Developer/CommandLineTools может быть повреждена или указывать на неполную папку после прерванной установки.
  5. Конфликт между Xcode и CLT
    Если установлены и полный Xcode, и отдельные Command Line Tools, xcode-select может указывать на одну из них. Некоторые инструменты требуют именно Xcode (например, xcodebuild для сборки iOS-приложений), а не CLT.

Способ 1: Сброс пути через xcode-select (самый частый случай)

Это решение подходит, если путь указан неверно, но Xcode или CLT установлены.

  1. Определите, что установлено
    Проверьте наличие папок:
    • Полный Xcode: /Applications/Xcode.app
    • Command Line Tools: /Library/Developer/CommandLineTools
    ls /Applications/Xcode.app 2>/dev/null && echo "Xcode найден"
    ls /Library/Developer/CommandLineTools 2>/dev/null && echo "CLT найдены"
    
  2. Сбросьте путь в зависимости от установленного ПО
    • Если есть полный Xcode (для разработки iOS/macOS приложений):
      sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
      
    • Если нужны только базовые утилиты (git, clang, make), и Xcode не установлен:
      sudo xcode-select --switch /Library/Developer/CommandLineTools
      
  3. Примите лицензионное соглашение (если потребуется)
    После сброса пути может появиться запрос на принятие лицензии Xcode:
    sudo xcodebuild -license
    

    Прокрутите текст и введите agree.
  4. Проверьте результат
    xcode-select -p
    

    Должен вывести выбранный путь. Также проверьте работу инструмента:
    xcodebuild -version
    

Способ 2: Полная переустановка Command Line Tools

Если CLT повреждены или отсутствуют, установите их заново.

  1. Удалите текущие CLT (если есть)
    sudo rm -rf /Library/Developer/CommandLineTools
    
  2. Установите CLT
    Запустите установщик:
    xcode-select --install
    

    Появится диалоговое окно. Нажмите "Установить" и следуйте инструкциям.
    Альтернатива: скачайте пакет напрямую с официального сайта Apple Developer (требуется учётная запись). Ищите "Command Line Tools for Xcode" соответствующей версии.
  3. Укажите путь на новую папку
    После установки выполните:
    sudo xcode-select --switch /Library/Developer/CommandLineTools
    
  4. Проверьте установку
    clang --version
    git --version
    

    Обе команды должны вывести версии.

Способ 3: Переустановка полного Xcode

Если вы разрабатываете под iOS/macOS и нуждаетесь в полном наборе инструментов (симуляторы, SDK, Instruments).

  1. Удалите текущий Xcode
    Перетащите приложение Xcode из папки /Applications в Корзину. Также удалите связанные данные:
    sudo rm -rf /Library/Developer/CommandLineTools
    sudo rm -rf /Applications/Xcode.app
    
  2. Скачайте Xcode из App Store
    Откройте App Store, найдите "Xcode" и установите. Или скачайте с developer.apple.com (часто нужна более старая версия для совместимости).
  3. Запустите Xcode один раз
    После установки откройте Xcode из Launchpad. Примите лицензионное соглашение и дождитесь завершения установки дополнительных компонентов.
  4. Укажите путь
    sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
    
  5. Дополнительно: установите дополнительные SDK
    В Xcode перейдите в Настройки → Locations и убедитесь, что выбрана правильная версия Command Line Tools.

Если по какой-то причине не удаётся установить CLT/Xcode, но у вас есть доступ к另一位 Mac с идентичной системой, можно скопировать папку CommandLineTools.

  1. Скопируйте папку с рабочего Mac
    С другого Mac (с той же версией macOS) скопируйте:
    sudo cp -R /Library/Developer/CommandLineTools /Library/Developer/
    
  2. Установите правильные права
    sudo chown -R root:wheel /Library/Developer/CommandLineTools
    
  3. Укажите путь
    sudo xcode-select --switch /Library/Developer/CommandLineTools
    

⚠️ Важно: Этот способ нарушает лицензионное соглашение Apple. Используйте только для восстановления работоспособности в изолированной среде, если другие методы недоступны. Для постоянного решения установите CLT официально.

Профилактика

  • Не удаляйте Xcode/CLT вручную — всегда используйте официальные установщики.
  • После обновления macOS проверяйте путь xcode-select -p. Если он пустой или ведёт в несуществующую папку, сбросьте его.
  • Используйте Homebrew для управления пакетами — он сам проверит наличие CLT и предложит установить.
  • Фиксируйте версию Xcode в CI/CD — в конфигурации сборки явно указывайте путь через DEVELOPER_DIR:
    export DEVELOPER_DIR="/Applications/Xcode_14.2.app/Contents/Developer"
    
  • Регулярно обновляйте Xcode через App Store — это снижает риск рассогласования путей.

Частые вопросы

Можно ли иметь одновременно Xcode и CLT?
Да, и это нормально. xcode-select указывает на один активный набор инструментов. Обычно выбирают Xcode для разработки под Apple-платформы, а CLT — для серверов или когда Xcode не нужен.

Почему Homebrew всё равно требует Xcode после установки CLT?
Некоторые формулы Homebrew (особенно для brew install --cask) действительно требуют полного Xcode. Если вы ставите только CLI-утилиты (git, wget), CLT достаточно. Проверьте, что именно требует формула: brew info <formula>.

Как проверить, какой пакет CLT установлен?

pkgutil --pkg-info=com.apple.pkg.CLTools_Executables

Вывод покажет версию и информацию об установке.

Что делать, если sudo xcode-select --switch выдает "Unable to set developer path"?
Это означает, что указанная папка не содержит файл usr/bin/xcodebuild. Убедитесь, что путь ведёт именно к .../Developer (для Xcode) или .../CommandLineTools (для CLT). Проверьте структуру папки:

ls /Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild

Часто задаваемые вопросы

Чем отличается Xcode от Command Line Tools и что нужно для xcode-select?
Почему после обновления macOS перестал работать xcode-select?
Можно ли использовать xcode-select без установленного Xcode?
Что делать, если команда `sudo xcode-select --switch` выдает 'operation not permitted'?

Полезное

Проверьте текущий путь xcode-select
Установите или переустановите Command Line Tools
Сбросьте путь на правильную директорию
Примите лицензионное соглашение Xcode
Проверьте работоспособность

Эта статья помогла вам решить проблему?