Qt Creator - Project ERROR: Xcode nie został poprawnie skonfigurowany. Może być konieczne potwierdzenie umowy licencyjnej, uruchamiając / usr / bin / xcodebuild

121

Właśnie zainstalowałem Qt 5.5 i po raz pierwszy używam Qt Creator w systemie OS X. Kiedy po raz pierwszy zainstalowałem Qt, wyświetlił mi się komunikat o błędzie „Xcode 5 not installed”, który wydawał mi się dziwny (mam Xcode 7 beta) , ale instalacja i tak zakończyła się pomyślnie.

Teraz, kiedy zaczynam lub otwieram projekt, pojawia się błąd:

BŁĄD projektu: Xcode nie został poprawnie skonfigurowany. Może być konieczne potwierdzenie umowy licencyjnej, uruchamiając / usr / bin / xcodebuild.

Kiedy uruchamiam /usr/bin/xcodebuildw Terminalu, otrzymuję następujące informacje:

xcode-select: error: narzędzie „xcodebuild” wymaga Xcode, ale aktywny katalog programisty „/ Library / Developer / CommandLineTools” jest instancją narzędzi wiersza poleceń

Nie jestem pewien, co Xcode ma wspólnego z Qt Creator, chyba że ma coś wspólnego z dostępem do bibliotek w celu zapewnienia zgodności między platformami, ale czy istnieje sposób na rozwiązanie tego problemu?

123
źródło
3
Uwaga: W przypadku Qt 5.7.1 i Xcode 8.2.1 odpowiedź @ rudolf-ratusinski spełnia jednak zadanie doskonale. Zaakceptowana odpowiedź nie działa.
Alexey Kamenskiy,
Odpowiedź @ rudolf-ratusinski nadal działa na Xcode 11.2.1
AJC

Odpowiedzi:

275

> = Xcode 8

W Xcode 8, jak powiedział Bruce, dzieje się tak, gdy Qt próbuje znaleźć, xcrunkiedy powinien szukać xcodebuild.

Otwórz plik:

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

Zastąpić:

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

Z:

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

~> Xcode 8

Przed Xcode 8 ten problem występuje, gdy narzędzia wiersza polecenia są instalowane po zainstalowaniu Xcode. Co się dzieje, gdy Xcode-selectzostanie wskazany katalog programisty /Library/Developer/CommandLineTools.

Wskaż Xcode-selectwłaściwy katalog Xcode Developer poleceniem:

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

Potwierdź umowę licencyjną poleceniem:

sudo xcodebuild -license

Spowoduje to przeczytanie umowy licencyjnej.

Wejdź, agreeaby zaakceptować warunki.

123
źródło
4
Wystąpił błąd xcode-select: error: nieprawidłowy katalog programisty '/Applications/Xcode.app/Contents/Developer'
Mohammed Rafeeq
14
Nie działa dla mnie z Xcode 8. Zaakceptowałem licencję zgodnie z tymi instrukcjami i nadal otrzymuję ten sam błąd.
Violet Giraffe
1
Dzięki, z XCode 8 po edycji default_pre.prf działa!
Libor B.
11
Dla tych, którzy zastanawiają się, gdzie jest folder instalacyjny: będzie to zależeć od ustawień twojego menedżera pakietów: / usr / local / Cellar / qt55 dla Homebrew, / opt / local / libexec / qt5 (-mac) dla macports.
yogodoshi
3
Z homebrew, po zainstalowaniu [email protected] (co jest wymagane dla Kapibara gem Ruby), znalazłem odpowiedniego default_pre.prfpliku na: /usr/local/Cellar/[email protected]/5.5.1/mkspecs/features/mac/default_pre.prf. Wypróbowałem także podejście Rudolfa Ratusińskiego i chociaż doprowadziło mnie to do pierwszego garbu, zaowocowało później wieloma fałszywymi wiadomościami, których nie otrzymałem, gdy zamiast tego zastosowałem to podejście.
Ben Hocking,
81

Jeśli zmienisz zawartość Qt_install_folder/5.7/clang_64/mkspecs/features/mac/default_pre.prf , będzie działać tylko dla zestawu Desktop, a nie dla ex. symulator.

Lepszym sposobem jest po prostu utworzenie linku symbolicznego:

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

więc nie musisz zmieniać plików .prf dla wszystkich celów.

Rudolf Ratusiński
źródło
1
Wolę tę wersję, więc wygląda mniej niechlujnie niż edycja plików cfg.
tjeden
3
Powoduje to problemy później, gdy xcrun jest wywoływany z parametrami nieobsługiwanymi przez xcodebuild (brak parametru -f).
panAlmond,
3
Wydaje się, że problem z QT. Więc uważam, że bardziej niebezpieczne jest dodanie trwałego linku symbolicznego do dystrybucji xcode niż zmiana pliku
konf
1
Nie rób tego, to zepsuje mój projekt aplikacji na iPhone'a.
Chchwy,
1
Głosowałem za tym zbyt wcześnie i zablokowałem go ... Napotkałem problem z parametrem -f.
BuvinJ
26

To wystarczy:

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

Uruchom to w swoim terminalu.

Shnd
źródło
działa w Xcode8 i jest łatwiejsze niż inne kroki. Dzięki!
Misha
Potwierdzono, że działa na macOS Sierra 10.12.4 z Xcode 8 - dziękuję!
Dylan Pierce
1
To nadal działa na macOS High Sierra 10.13.5 z Xcode 9.4.1 - Dziękuję!
d1jhoni1b
Potwierdzono, że działa to w macOS Catalina 10.15.2 z Xcode 11.3.
RNickMcCandless
11

Dla użytkowników Xcode 8 jest inny problem. Zobacz tutaj tymczasowe rozwiązanie do czasu wydania Qt 5.7.1:

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

Podsumować:

Otwórz Qt_install_folder/5.7/clang_64/mkspecs/features/mac/default_pre.prfw edytorze tekstu i zamień to:

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

z tym:

isEmpty($$list($$system("/usr/bin/xcrun -find xcodebuild 2>/dev/null")))
Bruce
źródło
4

Jeśli budujesz Qt ze źródła z XCode 8.x, musisz zmienić argument "-find" w pliku qt-everywhere-enterprise-src-5.7.0/qtbase/configurew linii 551, aby wyglądał następująco:

if ! /usr/bin/xcrun -find xcodebuild >/dev/null 2>&1; then
Remik Ziemlinski
źródło
2

Udało się go rozwiązać, instalując pełną wersję Xcode, zgadzając się na warunki, a następnie używając xcode-select --reset.

Zasadniczo problem polega na tym, że xcode, na który wskazujesz /Library/Developer/CommandLineTools, nie pozwala na zaakceptowanie warunków. Więc po instalacji i zresetowaniu lokalizacji wszystko powinno być w porządku

Ramzesa
źródło
0

Dla mnie jedynym sposobem na poprawną pracę jest komentowanie linii o xcrun za pomocą znaku „#”:

# 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.")

W pliku: Qt_install_folder / 5.7 / clang_64 / mkspecs / features / mac / default_pre.prf

Marcelo
źródło
0

Aby dodać trochę do wielu starych odpowiedzi w duchu „To zadziałało dla mnie”, odkryłem, że uruchamiając Xcode, logując się na moje konto programisty (tylko darmowe), a następnie ustawiając narzędzia poleceń w „Lokalizacjach” . Mogę dostać

'sudo / usr / bin / xcodebuild -license zgadzam się'

pracować. tzn. uruchomił proces uzgadniania w linii poleceń i zgodziłem się po uważnym przeczytaniu wszystkich 14 bilionów stron.

Nie musiałem niczego edytować.

Mój system to Mojave 10.14.6 i Xcode 10.3 (10G8).

nerak99
źródło