Qt Creator - LỖI Dự án: Xcode không được thiết lập đúng cách. Bạn có thể cần xác nhận thỏa thuận cấp phép bằng cách chạy / usr / bin / xcodebuild


121

Tôi vừa cài đặt Qt 5.5 và đang sử dụng Qt Creator lần đầu tiên trên OS X. Khi tôi cài đặt Qt lần đầu tiên, nó đưa ra thông báo lỗi 'Xcode 5 chưa được cài đặt' mà tôi nghĩ là lạ, (tôi có Xcode 7 beta) , nhưng dù sao thì quá trình cài đặt cũng hoàn tất thành công.

Bây giờ, khi tôi bắt đầu hoặc mở một dự án, tôi gặp lỗi:

LỖI dự án: Xcode không được thiết lập đúng cách. Bạn có thể cần xác nhận thỏa thuận cấp phép bằng cách chạy / usr / bin / xcodebuild.

Khi tôi chạy /usr/bin/xcodebuildtrong Terminal, tôi nhận được những điều sau:

xcode-select: error: tool 'xcodebuild' yêu cầu Xcode, nhưng thư mục nhà phát triển đang hoạt động '/ Library / Developer / CommandLineTools' là một phiên bản công cụ dòng lệnh

Tôi không chắc Xcode có liên quan gì với Qt Creator, trừ khi nó liên quan đến việc truy cập thư viện để tương thích đa nền tảng, nhưng có cách nào để khắc phục sự cố này không?


3
Lưu ý: Đối với Qt 5.7.1 và Xcode 8.2.1, câu trả lời của @ rudolf-ratusinski tuy nhiên thực hiện công việc hoàn hảo. Câu trả lời được chấp nhận không hoạt động.
Alexey Kamenskiy 20/12/16

@ rudolf-ratusinski câu trả lời vẫn hoạt động trên Xcode 11.2.1
AJC

Câu trả lời:


275

> = Xcode 8

Trong Xcode 8, như Bruce đã nói, điều này xảy ra khi Qt cố gắng tìm xcrunkhi nào nó nên tìm kiếm xcodebuild.

Mở tập tin:

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

Thay thế:

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

Với:

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

~> Xcode 8

Trước Xcode 8, sự cố này xảy ra khi các công cụ dòng lệnh được cài đặt sau khi Xcode được cài đặt. Điều gì xảy ra là Xcode-selectthư mục nhà phát triển được trỏ đến /Library/Developer/CommandLineTools.

Trỏ Xcode-selectđến đúng thư mục Nhà phát triển Xcode bằng lệnh:

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

Xác nhận thỏa thuận cấp phép bằng lệnh:

sudo xcodebuild -license

Điều này sẽ nhắc bạn đọc qua thỏa thuận cấp phép.

Nhập agreeđể chấp nhận các điều khoản.


4
Tôi đã nhận lỗi xcode-chọn: lỗi: thư mục nhà phát triển không hợp lệ '/Applications/Xcode.app/Contents/Developer'
Mohammed Rafeeq

14
Không hoạt động với tôi với Xcode 8. Tôi đã chấp nhận giấy phép thông qua các hướng dẫn này và vẫn gặp lỗi tương tự.
Violet Giraffe,

1
Cảm ơn, với XCode 8 sau khi chỉnh sửa default_pre.prf, nó hoạt động!
Libor B.

11
Đối với những người thắc mắc thư mục cài đặt ở đâu: nó sẽ phụ thuộc vào cài đặt của trình quản lý gói của bạn: / usr / local / Cellar / qt55 cho Homebrew, / opt / local / libexec / qt5 (-mac) cho macports.
yogodoshi

3
Với homebrew, sau khi cài đặt qt@5.5 (mà là cần thiết cho Capybara đá quý Ruby), tôi thấy có liên quan default_pre.prftập tin tại địa chỉ: /usr/local/Cellar/qt@5.5/5.5.1/mkspecs/features/mac/default_pre.prf. Tôi cũng đã thử cách tiếp cận của Rudolf Ratusiński, và trong khi nó đưa tôi vượt qua cái bướu đầu tiên, nó dẫn đến nhiều thông điệp giả sau đó mà tôi không nhận được khi sử dụng phương pháp này.
Ben Hocking

81

Nếu bạn thay đổi nội dung của Qt_install_folder/5.7/clang_64/mkspecs/features/mac/default_pre.prf nó thì nó sẽ chỉ hoạt động đối với bộ Desktop, không hoạt động cho ex. giả lập.

Một cách tốt hơn chỉ là tạo liên kết biểu tượng:

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

vì vậy bạn không phải thay đổi tệp .prf cho tất cả các mục tiêu.


1
Tôi thích phiên bản này hơn, vì vậy nó trông đỡ lộn xộn hơn so với việc chỉnh sửa các tệp cfg.
tjeden

3
Điều này gây ra sự cố sau này khi xcrun được gọi với các tham số không được xcodebuild hỗ trợ (thiếu tham số -f).
mrAlmond

3
Có vẻ như một vấn đề qt. Vì vậy, tôi xem xét nguy hiểm hơn thêm một liên kết sym kéo dài bên trong xcode distrib hơn là thay đổi một file conf qt mà sẽ được thay thế bằng Qt 5.7.1
ALoopingIcon

1
Đừng làm điều này, nó làm rối tung dự án ứng dụng iphone của tôi.
Chchwy

1
Tôi đã ủng hộ cái này quá sớm và nó bị khóa ... Tôi gặp phải vấn đề tham số -f.
BuvinJ

26

Điều này sẽ thực hiện thủ thuật:

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

Chạy điều này trong thiết bị đầu cuối của bạn.


hoạt động trong Xcode8 và dễ dàng hơn các bước khác. Cảm ơn!
Misha

Đã xác nhận rằng nó hoạt động trên macOS Sierra 10.12.4 với Xcode 8 - Cảm ơn bạn!
Dylan Pierce

1
Tính năng này vẫn đang hoạt động trên macOS High Sierra 10.13.5 với Xcode 9.4.1 - Cảm ơn bạn!
d1jhoni1b

Đã xác nhận điều này hoạt động trong macOS Catalina 10.15.2 với Xcode 11.3.
RNickMcCandless

11

Đối với người dùng Xcode 8, có một vấn đề khác. Xem tại đây để biết giải pháp tạm thời cho đến khi Qt 5.7.1 được phát hành:

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

Tóm lại:

Mở Qt_install_folder/5.7/clang_64/mkspecs/features/mac/default_pre.prftrong trình soạn thảo văn bản và thay thế điều này:

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

Với cái này:

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

4

Nếu bạn tạo Qt từ nguồn với XCode 8.x, bạn phải thay đổi đối số "-find" trong tệp qt-everywhere-enterprise-src-5.7.0/qtbase/configuretrên dòng 551 để nó giống như sau:

if ! /usr/bin/xcrun -find xcodebuild >/dev/null 2>&1; then

2

Quản lý để giải quyết nó bằng cách cài đặt phiên bản đầy đủ của Xcode, đồng ý với các điều khoản, sau đó sử dụng xcode-select --reset.

Về cơ bản, vấn đề là xcode bạn đang trỏ vào /Library/Developer/CommandLineToolskhông cho phép bạn chấp nhận các điều khoản và điều kiện. Vì vậy, sau khi cài đặt và đặt lại vị trí, tất cả sẽ ổn


0

Đối với tôi, cách duy nhất để làm việc chính xác là nhận xét các dòng về xcrun bằng '#':

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

Tại tệp: Qt_install_folder / 5.7 / clang_64 / mkspecs / features / mac / default_pre.prf


0

Chỉ để thêm một chút vào rất nhiều câu trả lời cũ với tinh thần "Điều này hiệu quả với tôi", tôi thấy rằng bằng cách khởi chạy Xcode, đăng nhập vào tài khoản nhà phát triển của tôi (chỉ là một tài khoản miễn phí) và sau đó đặt các công cụ Lệnh trong "Vị trí" . Tôi có thể lấy

'sudo / usr / bin / xcodebuild -license đồng ý'

làm việc. tức là nó khởi chạy một quy trình đồng ý trong dòng lệnh và tôi đã đồng ý sau khi đọc kỹ tất cả 14 squillion trang nội dung.

Tôi đã không phải chỉnh sửa bất cứ điều gì.

Hệ thống của tôi là Mojave 10.14.6 và Xcode 10.3 (10G8).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.