Что означает ошибка xcode-select
Ошибка xcode-select возникает, когда система macOS не может найти активный пакет инструментов разработчика (Xcode или Command Line Tools). Утилита xcode-select управляет путём к этим инструментам. Типичные сообщения об ошибке:
error: unable to get active developer directory
xcode-select: error: tool 'xcode-select' requires Xcode
Эти ошибки появляются при попытке использовать git, make, gcc или другие утилиты из терминала, а также при работе с Homebrew, CocoaPods или сборке проектов. Проблема означает, что система не знает, где находятся инструменты разработчика.
Причины возникновения
- Command Line Tools не установлены — после чистой установки macOS или обновления системы пакет инструментов может отсутствовать.
- Xcode установлен, но не принято лицензионное соглашение — без принятия соглашения инструменты не активируются.
- Неправильный путь в
xcode-select— командаxcode-selectуказывает на несуществующую или повреждённую папку. - Переменная окружения
DEVELOPER_DIR— если эта переменная установлена и указывает на неверный путь, система игнорирует настройкиxcode-select. - Повреждение установки — файлы Command Line Tools или Xcode могли быть повреждены при обновлении или удалении программ.
Способ 1: Установка Command Line Tools
Самый частый случай — отсутствие Command Line Tools. Установите их:
- Откройте Терминал (через Spotlight или
/Applications/Utilities/Terminal.app). - Выполните команду:
xcode-select --install - Появится диалоговое окно. Нажмите Установить и следуйте инструкциям (требуется пароль администратора).
- После завершения перезапустите терминал.
💡 Совет: Если окно установки не появляется, скачайте пакет вручную с официального сайта Apple. Выберите Command Line Tools for Xcode для вашей версии macOS.
Способ 2: Установка пути с помощью xcode-select
Если Command Line Tools или Xcode уже установлены, но путь не указан:
- Проверьте текущий путь:
xcode-select -p
Если выводxcode-select: error: unable to get active developer directory, путь не задан. - Укажите путь в зависимости от установленного ПО:
- Для Command Line Tools:
sudo xcode-select -s /Library/Developer/CommandLineTools - Для полного Xcode (если приложение в
/Applications):sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
⚠️ Важно: Используйте
sudo, так как изменение системного пути требует прав администратора. Введите пароль при запросе. - Для Command Line Tools:
- Проверьте, что путь установлен корректно:
xcode-select -p
Должен вывести выбранный путь.
Способ 3: Принятие лицензионного соглашения
После установки Xcode или Command Line Tools может потребоваться принять лицензию:
- В терминале выполните:
sudo xcodebuild -license - Прокрутите текст лицензии клавишей Пробел.
- В конце введите
agreeи нажмите Enter.
После этого инструменты станут доступны. Если лицензия уже принята, команда выведет соответствующее сообщение.
Способ 4: Переустановка Command Line Tools
Если инструменты повреждены, переустановите их:
- Удалите текущую версию:
sudo rm -rf /Library/Developer/CommandLineTools - Установите заново, как в Способе 1:
xcode-select --install - Укажите путь (если не установился автоматически):
sudo xcode-select -s /Library/Developer/CommandLineTools
Способ 5: Проверка переменной DEVELOPER_DIR
Переменная окружения DEVELOPER_DIR может переопределять путь, заданный через xcode-select:
- Проверьте, установлена ли переменная:
echo $DEVELOPER_DIR
Если вывод не пустой, это может быть причиной ошибки. - Удалите переменную для текущей сессии:
unset DEVELOPER_DIR
Или отредактируйте файлы~/.bash_profile,~/.zshrcили~/.profile, удалив строку сDEVELOPER_DIR. - Перезапустите терминал и проверьте, исчезла ли ошибка.
Профилактика
- После обновления macOS всегда переустанавливайте Command Line Tools, даже если они были до обновления.
- Принимайте лицензию Xcode при первом запуске после установки.
- Не меняйте путь
xcode-selectвручную, если не уверены в правильности пути. - Регулярно обновляйте Command Line Tools через
softwareupdate --installили App Store. - Проверяйте переменные окружения в скриптах, чтобы случайно не переопределить
DEVELOPER_DIR.