xcode-select ошибка активного каталога разработчика

682

Увидел следующую ошибку при запуске npm installкоторого требуется node-gyp... но может быть вызвано чем-либо, что требует xcode-select.

xcode-select: error: инструмент 'xcodebuild' требует Xcode, но активный каталог разработчика '/ Library / Developer / CommandLineTools' является экземпляром инструментов командной строки

В чем проблема?

tjmehta
источник
5
Работает и для YOSEMITE
tjmehta
12
Работает и для El Capitan
tjmehta
6
Работает и для Сьерры
tjmehta
5
Работает и для High Sierra
tjmehta
6
Работает и для Мохаве
Зохэйр

Ответы:

1291

Эта проблема возникает, когда xcode-selectкаталог разработчика указывал на /Library/Developer/CommandLineTools, когда требовался полный обычный XCode (случается, когда CommandLineTools устанавливается после XCode)

Решение:

  1. Установите Xcode (получите его по адресу https://appstore.com/mac/apple/xcode ), если у вас его еще нет.
  2. Принять условия.
  3. Убедитесь, что приложение XCode находится в /Applicationsкаталоге (НЕ /Users/{user}/Applications).
  4. Укажите xcode-selectкаталог разработчика приложения XCode, используя следующую команду:
    sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

Примечание. Убедитесь, что путь к приложению Xcode указан правильно.

  • Xcode: /Applications/Xcode.app/Contents/Developer
  • Xcode-бета: /Applications/Xcode-beta.app/Contents/Developer
tjmehta
источник
@qodeninja Тогда замените /Applications/Xcode5-DP4.appна правильный путь, я бы предположил.
Макс Нанаси
@MaxNanasy, я имею в виду, это очевидно. Но нет, это не сработало. Мне пришлось удалить и переустановить xcode, чтобы он снова
заработал
9
С бета-версией Xcode 6 это работало. Спасибо! sudo xcode-select -switch /Applications/Xcode6-Beta.app/Contents/Developer/
jpincheira
1
Мне не нужно было делать шаг 2. Установка Xcode была достаточной. :)
Райан Хиткот
11
macOS High Sierra 10.13 , у меня уже был установлен Xcode 9.2, и я столкнулся с той же проблемой после установки Carthage . Только что сделал шаг 4 и все!
RAM237
162

Другое решение для тех, кто не хочет устанавливать Xcode:

  1. Установите инструменты командной строки (если вы этого еще не сделали):

    xcode-select --install

  2. Изменить активный каталог:

    sudo xcode-select -switch /Library/Developer/CommandLineTools

Это сработало для меня (мерзавец).

Indamix
источник
23
Я предпочитаю это решение установке Xcode, однако похоже, что вы больше не можете загружать xcode-selectс Apple: cl.ly/image/2T0u2f2D471a/content
6
Однако я думаю, что у меня уже установлены инструменты командной строки, так что это ничего не исправит.
6
Итак, единственный ли способ получить пригодный xcodebuildдля установки весь Xcode? :-(
50
Этот ответ кажется неверным . Все дело в том, что для 'xcodebuild' требуется Xcode , то есть полная установка Xcode, или CommandLineTools. Тестирование здесь, переключение на CommandLineTools не останавливает ошибку, и не будет.
mikemaccana
21
Этот ответ больше не является правильным. По состоянию на май 2015 года при использовании инструментов командной строки для OSX 10.10 (Yosemite) команда xcodebuild больше не работает без установленного полного кода xcode.
HipsterZipster
151

У меня возникла проблема при попытке установить пакеты с помощью npm. Я получил ошибку: "sudo xcode-select -s /Applications//Xcode.app/Contents/Developer/"

Чтобы исправить это

  • Я открыл Xcode.
  • предпочтения
  • Места
  • Выбранные команды Лин Инструменты: Xcode 6.1.1

Теперь при установке пакетов с npm я больше не получаю ошибок.

jay.tech66
источник
1
Исправлена ​​настройка Robo VM.
Сенсей
107

Xcode-> Preferences-> Locations-> инструменты командной строки

Скриншот

Выберите опцию: Xcode 8.x

Франклина
источник
1
Нажмите на ссылку и посмотрите на изображение. Решение этой проблемы не сложно.
FranklinA
Я установил 8 версий xcode, которые делали и выпускали, но вышеуказанная проблема решит мою проблему. Вы спасатель жизни;)
ahsan
Это было единственное, что сработало для меня, когда я попытался установить 2 версию XCode. Попытка xcode-selectпродолжала говорить "ошибка: неверный каталог разработчика"!
mc01
Это было решение, которое мне было нужно. Не уверен, почему эта опция командной строки инструментов не была установлена. Но как только я установил его, это решило мою проблему. Спасибо.
JDAVIS
50

Просто запустите sudo xcode-select -rкоторый должен автоматически сбросить путь.

 -r, --reset
              Unsets any user-specified developer directory, so that the developer directory will be found via the default search mechanism. This command must  be
              run with superuser permissions (see sudo(8)), and will affect all users on the system.
chunkyguy
источник
Интересно, что произойдет, если я удалил xcode и выполнил шаги, описанные выше, так как я установил CLI после xcode. Это испортит мои существующие проекты приложений IOS?
гель
Это работает для меня на OSX 10.14.4 с XCode 11.3.1
Рафаэль Хан
10

На случай, если вы используете бета-версию xcode:

sudo xcode-select -s /Applications/Xcode-Beta.app/Contents/Developer
Андрей Дейнеко
источник
9

Я должен был запустить это первым

sudo xcode-select --reset

тогда

sudo xcode-select -switch /Library/Developer/CommandLineTools

и тогда это сработало.

Hamoonist
источник
5
Для меня проблема была исправлена ​​после запуска первой команды. Запуск второй команды снова сломал вещи. Так что только первый (в моем случае). Спасибо.
Nate
--reset
Питер Ламберг,
7
  1. Загрузите Xcode из App Store.

  2. Перейдите в настройки XCode / Locations / CommandlineTools

    Вам просто нужно установить его на версию Xcode. Он автоматически указывает на «/Application/Xcode.app»

Рахул Шеной
источник
3

Установите Xcode из App Store. После установки запустите xcodebuild с правами root, т.е. sudo xcodebuildи примите язык. После этого npm install bcryptработал как шарм!

sandeepkohli
источник
3

Без XCode: создать файл /usr/local/bin/xcodebuildс контентом, чтобы обмануть XCodeSelect

  #!/bin/bash
  exit 0

chmod +x /usr/local/bin/xcodebuild

javamonk
источник
Я должен сказать, что у меня проблемы с node-gyp по какой-то причине, xcodebuildкогда у меня установлен только CLT. Я бы предпочел не устанавливать XCode только для того, чтобы установить некоторые собственные расширения, не имеющие отношения к разработке на Mac и iOS, поэтому я очень готов попробовать эту технику, чтобы просто закрыть ошибку. Знаете ли вы, есть ли какие-либо последствия этого? Я могу только вообразить, что вызов node-gyp происходит xcodebuildпо какой-то причине, и, выполняя операцию, exit 0мы ломаем цепочку инструментов для данной сборки, но я не уверен, так как не знаю, почему она будет использоваться xcodebuildв первое место. Любые идеи?
alexrussell
1
Я попробовал это, к сожалению, без разницы. Я действительно не хочу устанавливать XCode - это всего лишь какая-то маркетинговая BS от Apple, которая заставляет вас устанавливать его.
Алекс
2

Если вы используете бета-версию Xcode, запустите

sudo xcode-select --switch /Applications/Xcode-beta.app/Contents/Developer 

вместо

sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
M.Sobhy
источник
2

Я смог решить эту ошибку, не устанавливая полное приложение Xcode. Однако у вас должны быть установлены инструменты командной строки xcode.

От сюда :

  1. $ cd /usr/bin
  2. $ sudo mv xcodebuild xcodebuild.orig (Бэкап на всякий случай)
  3. $ vim xcodebuild
  4. Вставьте следующее:
#!/bin/bash
if [[ $1 == '-version' ]]; then
  echo "Xcode 10.2.1"
  echo "Build version 10E1001"
else
  /usr/bin/xcodebuild.bak $@
fi
  1. $ sudo chmod +x xcodebuild
JBIS
источник
Хороший ответ. Также благодарю вас за ссылку на первоисточник. :)
Мономет
1

XCode2: sudo xcode-select -s / Applications / Xcode \ 2.app/Contents/Developer

Обратите внимание на "\", чтобы выйти из космоса

turibbio
источник
1

У меня было установлено два экземпляра Xcode: xcode.app и xcode-beta.app. Когда я пытался создать сборку с помощью NetBeans, она показала мне ошибку «Поддерживаемая версия инструментов XCode и командной строки не найдена.

Я выполнил следующие шаги:

  1. «xcode-select --print-path» равен «/Applications/Xcode.app/Contents/Developer»
  2. "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform" существует
  3. «xcodebuild -version» начинается с «Xcode»

после 1 я обнаружил, что он указывает мне на xcode-beta.app

так вот решение, которое работает как шарм:

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

Шашанк Саксена
источник
1

Для контекста, сегодня 28 января 2019 года .

На моем Mac я сделал две вещи, чтобы решить эту проблему:

  1. Запустите следующую команду в вашем терминале:
    sudo xcode-select --install

  2. Перезагрузите ваш Mac.

Пока я не перезагрузил компьютер, проблема продолжала возникать в моей Android Studio. После перезагрузки все работало нормально. Также обратите внимание, что я не выполнял никаких --switchкоманд, как это делают другие. Надеюсь, это поможет.

Стив
источник
1

У меня была такая же проблема в высокой Сьерре. Выполнение следующей команды решило ее. npm explore npm -g - npm install node-gyp @ latest

Лужа Шреста
источник
1
Это сработало для меня, за исключением того, что я просто переустановилnpm -g install node-gyp@latest
ты.
1

Пожалуйста, следуйте инструкциям ниже:

  1. Последняя версия Xcode может быть загружена с https://developer.apple.com/xcode/download/
  2. Он будет загружен в «Загрузки», если не указано иное. Пожалуйста, не забудьте проверить путь, по которому вы скачали и распаковали Xcode
  3. Теперь, в отличие от других загруженных приложений, при извлечении Xcode не дает возможности переместить его в Приложения
  4. Обратите внимание на XCODE-ACTUAL-LOCATION или переместите его в Приложения
  5. Обратите внимание, если вы загрузили Xcode или Xcode-beta

На основании 4 и 5 выполните одну из команд (не выполняйте их все, не прочитав приведенное выше описание):

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
sudo xcode-select -s /Applications/Xcode-beta.app/Contents/Developer
sudo xcode-select -s /[XCODE-ACTUAL-LOCATION]/Xcode.app/Contents/Developer
sudo xcode-select -s /[XCODE-ACTUAL-LOCATION]/Xcode-beta.app/Contents/Developer
Никхил Махешвари
источник
0
sudo xcode-select -s /Applications/Xcode 10.app/Contents/Developer

languoguangs-iMac:/ languoguang$ sudo xcode-select -s /Applications/Xcode 10.app/Contents/Developer
xcode-select: error: invalid argument '10.app/Contents/Developer'
Usage: xcode-select [options]

Print or change the path to the active developer directory. This directory
controls which tools are used for the Xcode command line tools (for example, 
xcodebuild) as well as the BSD development commands (such as cc and make).

Options:
  -h, --help                  print this help message and exit
  -p, --print-path            print the path of the active developer directory
  -s <path>, --switch <path>  set the path for the active developer directory
  --install                   open a dialog for installation of the command line developer tools
  -v, --version               print the xcode-select version
  -r, --reset                 reset to the default command line tools path
languoguangs-iMac:/ languoguang$ sudo xcode-select -s "/Applications/Xcode 10.app/Contents/Developer"

потому что мое имя XCode в Приложении "XCode 10",

sudo xcode-select -s "/Applications/Xcode 10.app/Contents/Developer"

работает.

Languoguang
источник
0

В моем случае,

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer 

не работал, потому что у моего Xcode было какое-то специальное имя. например) Xcode_11.2.0_beta_2_stackoverflow.app

cd /applications
ls

Затем я нашел свое имя Xcode, а затем заменил его

sudo xcode-select -s /Applications/{myXcodeName}.app/Contents/Developer 

Это сработало для меня.

Jaeseok Jay An
источник
0

Ничто из вышеперечисленного не помогло мне. Первоначально я установил инструменты командной строки отдельно, а затем все Xcode. Для меня сработало удаление инструментов командной строки, как показано здесь . Затем при попытке запустить xcode-selectснова меня попросили переустановить их.

* Кстати, причина, по которой я нашел этот поток, заключалась в том, что я установил некоторые библиотеки (в частности gcc) macports, предположительно, с использованием старых инструментов командной строки, а затем установил полный Xcode на полпути в разработку. Так или иначе, в моем случае мне пришлось переустанавливать macportsпосле удаления автономных инструментов командной строки, переустановить их, переустановить gcc, а затем моя компиляция работала.

legel
источник
0

Требуются только два шага, и полный XCode.app вообще не требуется:

sudo rm -rf /Library/Developer/CommandLineTools
xcode-select --install

В этот момент появляется диалоговое окно «Установка Softwre»:

введите описание изображения здесь

Это оно!

Марк Ричман
источник
0

Простая переустановка xcode-select

sudo rm -rf /Library/Developer/CommandLineTools
xcode-select --install
Семир Ходжич
источник