xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
#Чем отличается от ошибки xcrun
Некоторым задачам (xcodebuild, симуляторам iOS и сборке проектов Apple) действительно требуется полный Xcode; простым командам Git или clang часто достаточно Command Line Tools. Выберите нужный инструмент после проверки исходной ошибки, а не устанавливайте Xcode для любого сообщения xcode-select.
#Частые причины
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Путь на CLTУстановлены только инструменты командной строки. | xcode-select -p показывает /Library/Developer/CommandLineTools. | Установите Xcode и переключите путь. |
| Xcode удалён или переименованПуть указывает на несуществующую папку. | Ошибка «invalid developer directory». | Укажите новый путь через -s. |
| Несколько версий (beta)Системный путь указывает на удалённую бету. | Сборка не находит SDK. | Переключите на стабильную версию или используйте DEVELOPER_DIR. |
| Лицензия не принятаПосле обновления Xcode. | «You have not agreed to the Xcode license». | sudo xcodebuild -license accept. |
| Xcode на внешнем дискеДиск не подключён. | Путь недоступен. | Подключите диск или переключитесь на внутреннюю копию. |
| Нужны дополнительные компонентыНе завершена первая настройка. | Ошибки при запуске симулятора. | xcodebuild -runFirstLaunch. |
#Пошагово
- Посмотрите активный путьОткройте «Терминал» в macOS и выполните
xcode-select -p. Если команда отвечаетinvalid active developer path, запишите путь, указанный в тексте; возможно, он остался от удалённого Xcode или обновления macOS. Если путь существует, проверьте доступ и версию инструментов, прежде чем менять выбор; команда ничего не исправляет и безопасна для диагностики. - Найдите установленный XcodeОткройте Finder → «Программы» и найдите Xcode. Если его нет, выполните в Терминале
ls -d /Applications/Xcode*.app 2>/dev/nullили поиск Spotlight. Переименованные версии и Xcode beta могут находиться в другом месте, поэтому путь дляxcode-selectнельзя предполагать. Проверьте существованиеContents/Developerв найденном приложении. - Укажите егоЕсли полный Xcode установлен, выполните
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer, подставив реальное расположениеContents/Developer. Для команды нужен пароль администратора; при вводе символы не показываются. Затемxcode-select -pдолжен показать выбранный каталог. Если Xcode отсутствует, используйтеxcode-select --installдля отдельных Command Line Tools вместо указания несуществующей папки. - Примите лицензиюЕсли при запуске
xcodebuildmacOS пишет, что нужно принять лицензию, в Терминале с правами администратора выполнитеsudo xcodebuild -license accept. Этот шаг нужен для полного Xcode, не для любой ошибкиxcode-select. После успешного выполнения вновь запуститеxcodebuild -version. Не вводите пароль в командную строку и не принимайте лицензию за другого пользователя без полномочий. - Выполните первоначальную настройкуЕсли Xcode установлен впервые и просит первоначальную настройку, запустите приложение Xcode обычным способом и дождитесь предложенной установки дополнительных компонентов. Только если документация используемой версии требует командный запуск, администратор может выполнить
sudo xcodebuild -runFirstLaunch. Это изменяет системную установку и не требуется для простой командыgitпри отдельных CLT. - Проверьте версиюВ Терминале выполните
xcodebuild -versionдля полного Xcode илиxcrun --find clangдля Command Line Tools. Успех — информация о версии/путь к clang; если ошибка повторилась, выполнитеxcode-select -pи проверьте, что выбранный каталог существует. Повторите исходную команду проекта в том же терминале и сохраните полный вывод при неудаче. - Если Xcode не установленЕсли Xcode вообще не установлен и действительно нужен для вашего проекта, откройте Mac App Store, найдите Xcode от Apple и проверьте совместимость с установленной macOS. Для простого Git, clang или Homebrew часто достаточно Command Line Tools (
xcode-select --install) — полный Xcode не обязателен. Скачивайте дистрибутивы только из App Store или на сайте Apple Developer, учитывая размер и свободное место. - Команды для отдельных ситуацийВыберите только подходящий вариант. Это не одна последовательность: часть команд диагностирует проблему, а часть меняет настройки или данные.
Для Homebrew, Python-расширений и обычных сборок полный Xcode не нужен: достаточно Command Line Tools. Если вы не разрабатываете под iOS и macOS, верните путь на CLT командой sudo xcode-select -s /Library/Developer/CommandLineTools, а необходимость в Xcode отпадёт.