Qt Creator - Project ERROR: Xcode ไม่ได้ตั้งค่าอย่างถูกต้อง คุณอาจต้องยืนยันข้อตกลงสิทธิ์การใช้งานโดยเรียกใช้ / usr / bin / xcodebuild


121

ฉันเพิ่งติดตั้ง Qt 5.5 และใช้ Qt Creator เป็นครั้งแรกบน OS X เมื่อฉันติดตั้ง Qt ครั้งแรกมันทำให้ฉันมีข้อความแสดงข้อผิดพลาด 'Xcode 5 not installed' ซึ่งฉันคิดว่ามันแปลก (ฉันมี Xcode 7 beta) แต่การติดตั้งเสร็จสมบูรณ์แล้วอย่างไรก็ตาม

ตอนนี้เมื่อฉันเริ่มหรือเปิดโครงการฉันได้รับข้อผิดพลาด:

ข้อผิดพลาดของโครงการ: ตั้งค่า Xcode ไม่ถูกต้อง คุณอาจต้องยืนยันข้อตกลงสิทธิ์การใช้งานโดยเรียกใช้ / usr / bin / xcodebuild

เมื่อฉันทำงาน/usr/bin/xcodebuildใน Terminal ฉันจะได้รับสิ่งต่อไปนี้:

xcode-select: ข้อผิดพลาด: เครื่องมือ 'xcodebuild' ต้องการ Xcode แต่ไดเรกทอรีของนักพัฒนาที่ใช้งานอยู่ '/ Library / Developer / CommandLineTools' เป็นอินสแตนซ์เครื่องมือบรรทัดคำสั่ง

ฉันไม่แน่ใจว่า Xcode เกี่ยวข้องอะไรกับ Qt Creator เว้นแต่จะมีส่วนเกี่ยวข้องกับการเข้าถึงไลบรารีเพื่อความเข้ากันได้ข้ามแพลตฟอร์ม แต่มีวิธีแก้ไขปัญหานี้หรือไม่


3
หมายเหตุ: สำหรับ Qt 5.7.1 และ Xcode 8.2.1 คำตอบของ @ rudolf-ratusinski ทำงานได้อย่างสมบูรณ์แบบ คำตอบที่ยอมรับใช้ไม่ได้
Alexey Kamenskiy

คำตอบของ @ rudolf-ratusinski ยังใช้งานได้กับ Xcode 11.2.1
AJC

คำตอบ:


275

> = Xcode 8

ใน Xcode 8 ตามที่ Bruce กล่าวไว้สิ่งนี้เกิดขึ้นเมื่อ 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 Developer ที่ถูกต้องด้วยคำสั่ง:

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

ยืนยันข้อตกลงใบอนุญาตด้วยคำสั่ง:

sudo xcodebuild -license

สิ่งนี้จะแจ้งให้คุณอ่านข้อตกลงใบอนุญาต

ป้อนagreeเพื่อยอมรับเงื่อนไข


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
โยโกโดชิ

3
ด้วย homebrew หลังจากติดตั้ง qt@5.5 (ซึ่งจำเป็นสำหรับอัญมณี Ruby capybara) ฉันพบdefault_pre.prfไฟล์ที่เกี่ยวข้องที่: /usr/local/Cellar/qt@5.5/5.5.1/mkspecs/features/mac/default_pre.prf. ฉันลองใช้แนวทางของรูดอล์ฟราตูซิสกี้ด้วยและในขณะที่มันทำให้ฉันอยู่เหนือโคกแรกมันส่งผลให้มีข้อความปลอมมากมายในภายหลังซึ่งฉันไม่ได้รับเมื่อฉันใช้วิธีนี้แทน
Ben Hocking

81

หากคุณเปลี่ยนเนื้อหาจากQt_install_folder/5.7/clang_64/mkspecs/features/mac/default_pre.prf นั้นจะใช้ได้เฉพาะกับชุดเดสก์ท็อปเท่านั้นไม่ใช่สำหรับเช่น จำลอง

วิธีที่ดีกว่าคือการสร้าง symlink:

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

คุณจึงไม่ต้องเปลี่ยนไฟล์. prf สำหรับเป้าหมายทั้งหมด


1
ฉันชอบเวอร์ชันนี้ดังนั้นมันจึงดูยุ่งน้อยกว่าการแก้ไขไฟล์ cfg
tjeden

3
สิ่งนี้ทำให้เกิดปัญหาในภายหลังเมื่อเรียกใช้ xcrun ด้วยพารามิเตอร์ที่ xcodebuild ไม่รองรับ (ไม่มีพารามิเตอร์ -f)
mrAlmond

3
ดูเหมือนว่าเป็นปัญหาเกี่ยวกับ qt ดังนั้นฉันคิดว่าอันตรายมากกว่าการเพิ่มลิงก์ sym ที่ยั่งยืนภายใน xcode distribution มากกว่าการเปลี่ยนไฟล์ 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 - ขอบคุณ!
Dylan Pierce

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 เข้าสู่ระบบบัญชีนักพัฒนาของฉัน (เพียงแค่ฟรี) จากนั้นตั้งค่าเครื่องมือคำสั่งใน "สถานที่" . ฉันสามารถรับไฟล์

'sudo / usr / bin / xcodebuild - เห็นด้วยกับใบอนุญาต'

ไปทำงาน. กล่าวคือเปิดตัวกระบวนการเห็นด้วยในบรรทัดคำสั่งและฉันเห็นด้วยหลังจากอ่านเนื้อหาทั้งหมด 14 พันล้านหน้าอย่างระมัดระวัง

ไม่ต้องแก้ไขอะไรเลย

ระบบของฉันคือ Mojave 10.14.6 และ Xcode 10.3 (10G8)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.