Qt Creator - Помилка проекту: Xcode не встановлений належним чином. Можливо, вам доведеться підтвердити ліцензійну угоду, запустивши / usr / bin / xcodebuild


121

Щойно я встановив Qt 5.5 і вперше використовую Qt Creator в OS X. Коли я вперше встановив Qt, він видав мені повідомлення про помилку "Xcode 5 not встановлений", який я вважав дивним (у мене бета-версія Xcode 7) , але установка завершена в будь-якому випадку.

Тепер, коли я запускаю або відкриваю проект, я отримую помилку:

Помилка проекту: Xcode не налаштований належним чином. Можливо, вам доведеться підтвердити ліцензійну угоду, запустивши / usr / bin / xcodebuild.

Коли я бігаю /usr/bin/xcodebuildв Терміналі, я отримую наступне:

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

Я не впевнений, що Xcode пов'язаний з Qt Creator, якщо це не стосується доступу до бібліотек для сумісності між платформами, але чи є спосіб виправити цю проблему?


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щоб прийняти умови.


4
Я отримав помилку xcode-select: помилка: невірний каталог розробника '/Applications/Xcode.app/Contents/Developer'
Mohammed Rafeeq

14
Не працює для мене з Xcode 8. Я прийняв ліцензію за допомогою цих інструкцій і все одно отримую ту саму помилку.
Фіолетова жирафа

1
Дякую, з XCode 8 після редагування default_pre.prf він працює!
Libor B.

11
Для тих, хто цікавиться, де знаходиться папка встановлення: це залежатиме від налаштувань вашого менеджера пакунків: / usr / local / Cellar / qt55 для Homebrew, / opt / local / libexec / qt5 (-mac) для макпортів.
йогодоші

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 він буде працювати тільки для настільного набору, а не для колишнього. тренажер.

Кращий спосіб - просто створити символьне посилання:

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

тому вам не доведеться змінювати .prf файли для всіх цілей.


1
Я віддаю перевагу цій версії, тому вона виглядає менш безладним, ніж редагування файлів cfg.
тиждень

3
Це спричиняє проблеми пізніше, коли xcrun викликається параметрами, які не підтримуються xcodebuild (відсутній параметр -f).
mrAlmond

3
Здається, питання qt. Тому я вважаю більш небезпечним додавання міцного посилання sym всередині розподілу xcode, ніж зміна файлу qt conf, який буде замінено Qt 5.7.1
ALoopingIcon

1
Не робіть цього, це зіпсує мій проект програми iphone.
Chchwy

1
Я заборонив це занадто рано і заблокував його ... Я наткнувся на параметр -f.
BuvinJ

26

Це зробить трюк:

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

Запустіть це у своєму терміналі.


працює в 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


0

Просто, щоб додати трохи до старих відповідей у ​​дусі "Це працювало для мене", я виявив, що запустив Xcode, увійшов до свого облікового запису розробника (просто безкоштовний), а потім встановив інструменти Command у "Locations" . Я міг би отримати

'sudo / usr / bin / xcodebuild -license погодитися'

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

Мені нічого не потрібно було редагувати.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.