Qt Creator - ОШИБКА проекта: Xcode настроен неправильно. Возможно, вам потребуется подтвердить лицензионное соглашение, запустив / usr / bin / xcodebuild

121

Я только что установил Qt 5.5 и впервые использую Qt Creator в OS X. Когда я впервые установил Qt, он выдал мне сообщение об ошибке «Xcode 5 not installed», что я подумал, что это странно (у меня есть бета-версия Xcode 7) , но установка в любом случае завершилась успешно.

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

ОШИБКА проекта: Xcode настроен неправильно. Возможно, вам потребуется подтвердить лицензионное соглашение, запустив / usr / bin / xcodebuild.

Когда я запускаю /usr/bin/xcodebuildтерминал, я получаю следующее:

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

Я не уверен, какое отношение Xcode имеет к Qt Creator, если только он не имеет отношения к доступу к библиотекам для кросс-платформенной совместимости, но есть ли способ исправить эту проблему?

123
источник
3
Примечание: для Qt 5.7.1 и Xcode 8.2.1 ответ @ rudolf-ratusinski, однако, отлично справляется со своей задачей. Принятый ответ не работает.
Алексей Каменский
@ rudolf-ratusinski ответ все еще работает на Xcode 11.2.1
AJC

Ответы:

275

> = Xcode 8

В Xcode 8, как сказал Брюс, это происходит, когда Qt пытается найти, xcrunкогда он должен искать xcodebuild.

Откройте файл:

Qt_install_folder/5.7/clang_64/mkspecs/features/mac/default_pre.prf

Заменить:

isEmpty($$list($$system("/usr/bin/xcrun -find xcrun 2>/dev/null")))

С участием:

isEmpty($$list($$system("/usr/bin/xcrun -find xcodebuild 2>/dev/null")))

~> Xcode 8

До Xcode 8 эта проблема возникает, когда инструменты командной строки устанавливаются после установки Xcode. Происходит указание на Xcode-selectкаталог разработчика /Library/Developer/CommandLineTools.

Укажите Xcode-selectправильный каталог разработчика Xcode с помощью команды:

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

Подтвердите лицензионное соглашение командой:

sudo xcodebuild -license

Вам будет предложено прочитать лицензионное соглашение.

Введите, agreeчтобы принять условия.

123
источник
4
Я получил ошибку xcode-select: error: invalid developer directory '/Applications/Xcode.app/Contents/Developer'
Mohammed Rafeeq
14
У меня не работает с Xcode 8. Я принял лицензию с помощью этих инструкций и по-прежнему получаю ту же ошибку.
Violet Giraffe
1
Спасибо, с XCode 8 после редактирования default_pre.prf все работает!
Libor B.
11
Для тех, кому интересно, где находится установочная папка: это будет зависеть от настроек вашего диспетчера пакетов: / usr / local / Cellar / qt55 для Homebrew, / opt / local / libexec / qt5 (-mac) для macports.
yogodoshi
3
С самогон, после установки qt@5.5 (который необходим для Капибара драгоценного камня рубина), я нашел соответствующий default_pre.prfфайл по адресу: /usr/local/Cellar/qt@5.5/5.5.1/mkspecs/features/mac/default_pre.prf. Я также попробовал подход Рудольфа Ратусинского, и, хотя он помог мне преодолеть первый подъем, позже он привел к многочисленным ложным сообщениям, которых я не получил, когда вместо этого использовал этот подход.
Бен Хокинг
81

Если вы измените содержимое, Qt_install_folder/5.7/clang_64/mkspecs/features/mac/default_pre.prf он будет работать только для настольного комплекта, а не для ex. Тренажер.

Лучше всего создать символическую ссылку:

cd /Applications/Xcode.app/Contents/Developer/usr/bin/
sudo ln -s xcodebuild xcrun

поэтому вам не нужно изменять файлы .prf для всех целей.

Рудольф Ратусинский
источник
1
Я предпочитаю эту версию, поэтому она выглядит менее запутанной, чем редактирование файлов cfg.
tjeden
3
Это вызывает проблемы позже, когда xcrun вызывается с параметрами, не поддерживаемыми xcodebuild (отсутствует параметр -f).
mrAlmond
3
Кажется, проблема в qt. Поэтому я считаю более опасным добавление постоянной символьной ссылки внутри дистрибутива xcode, чем изменение файла qt conf, который будет заменен на Qt 5.7.1
ALoopingIcon
1
Не делай этого, это испортит мой проект приложения для iphone.
Chchwy 07
1
Я слишком рано проголосовал за это и заблокировал его ... Я столкнулся с проблемой параметра -f.
BuvinJ
26

Это поможет:

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

Запустите это в своем терминале.

Shnd
источник
работает в Xcode8 и проще, чем другие шаги. Спасибо!
Миша
Подтверждено, что он работает на macOS Sierra 10.12.4 с Xcode 8 - Спасибо!
Дилан Пирс
1
Это все еще работает на macOS High Sierra 10.13.5 с Xcode 9.4.1 - Спасибо!
d1jhoni1b
Подтверждено, что это работает в macOS Catalina 10.15.2 с Xcode 11.3.
RNickMcCandless
11

Для пользователей Xcode 8 есть еще одна проблема. См. Здесь временное решение до выпуска Qt 5.7.1:

https://forum.qt.io/topic/71119/project-error-xcode-not-set-up-properly

Чтобы обобщить:

Откройте Qt_install_folder/5.7/clang_64/mkspecs/features/mac/default_pre.prfв текстовом редакторе и замените это:

isEmpty($$list($$system("/usr/bin/xcrun -find xcrun 2>/dev/null"))))

с этим:

isEmpty($$list($$system("/usr/bin/xcrun -find xcodebuild 2>/dev/null")))
Брюс
источник
4

Если вы собираете Qt из исходного кода с помощью XCode 8.x, вы должны изменить аргумент «-find» в файле qt-everywhere-enterprise-src-5.7.0/qtbase/configureв строке 551 так, чтобы он выглядел так:

if ! /usr/bin/xcrun -find xcodebuild >/dev/null 2>&1; then
Ремик Зиемлински
источник
2

Удалось решить эту проблему, установив полную версию Xcode, согласившись с условиями, а затем используя xcode-select --reset.

В основном проблема в том, что xcode, на который вы указываете /Library/Developer/CommandLineTools, не позволяет вам принять условия. Итак, после установки и сброса местоположения все должно быть в порядке

Рамзес
источник
0

Для меня единственный способ работать правильно - это комментировать строки о xcrun с помощью символа '#':

# Make sure Xcode is set up properly
#isEmpty($$list($$system("/usr/bin/xcrun -find xcrun 2>/dev/null"))): \
    #error("Xcode not set up properly. You may need to confirm the license agreement by running /usr/bin/xcodebuild.")

В файле: Qt_install_folder / 5.7 / clang_64 / mkspecs / features / mac / default_pre.prf

Marcelo
источник
0

Просто чтобы добавить немного к большому количеству старых ответов в духе «Это сработало для меня», я обнаружил, что, запустив Xcode, войдя в свою учетную запись разработчика (только бесплатную), а затем установив инструменты Command в «Locations» , Я мог бы получить

'sudo / usr / bin / xcodebuild -license согласен'

работать. т.е. он запустил процесс согласования в командной строке, и я согласился после внимательного прочтения всех 14-ти миллиардных страниц материала.

Мне не пришлось ничего редактировать.

Моя система - Mojave 10.14.6 и Xcode 10.3 (10G8).

nerak99
источник