Qt Creator - Project ERROR: Xcode tidak disiapkan dengan benar. Anda mungkin perlu mengkonfirmasi perjanjian lisensi dengan menjalankan / usr / bin / xcodebuild

121

Saya baru saja menginstal Qt 5.5 dan menggunakan Qt Creator untuk pertama kalinya di OS X. Saat pertama kali menginstal Qt, saya mendapat pesan kesalahan 'Xcode 5 tidak diinstal' yang menurut saya aneh, (saya memiliki Xcode 7 beta) , tapi penginstalan berhasil diselesaikan.

Sekarang, ketika saya memulai atau membuka proyek, saya mendapatkan kesalahan:

KESALAHAN Proyek: Xcode tidak disiapkan dengan benar. Anda mungkin perlu mengkonfirmasi perjanjian lisensi dengan menjalankan / usr / bin / xcodebuild.

Ketika saya menjalankan /usr/bin/xcodebuilddi Terminal, saya mendapatkan yang berikut:

xcode-select: error: tool 'xcodebuild' memerlukan Xcode, tetapi direktori pengembang aktif '/ Library / Developer / CommandLineTools' adalah contoh alat baris perintah

Saya tidak yakin apa hubungannya Xcode dengan Qt Creator, kecuali ada hubungannya dengan mengakses perpustakaan untuk kompatibilitas lintas platform, tetapi adakah cara untuk memperbaiki masalah ini?

123
sumber
3
Catatan: Untuk Qt 5.7.1 dan Xcode 8.2.1 jawaban oleh @ rudolf-ratusinski melakukan pekerjaan dengan sempurna. Jawaban yang diterima tidak berfungsi.
Alexey Kamenskiy
@ Rudolf-ratusinski jawaban masih berfungsi di Xcode 11.2.1
AJC

Jawaban:

275

> = Xcode 8

Di Xcode 8, seperti yang dikatakan Bruce, ini terjadi ketika Qt mencoba menemukan xcrunkapan seharusnya dicari xcodebuild.

Buka file:

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

Menggantikan:

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

Dengan:

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

~> Xcode 8

Sebelum Xcode 8, masalah ini terjadi ketika alat baris perintah diinstal setelah Xcode diinstal. Apa yang terjadi adalah Xcode-selectdirektori pengembang diarahkan ke /Library/Developer/CommandLineTools.

Arahkan Xcode-selectke direktori Pengembang Xcode yang benar dengan perintah:

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

Konfirmasikan perjanjian lisensi dengan perintah:

sudo xcodebuild -license

Ini akan meminta Anda untuk membaca perjanjian lisensi.

Enter agreeuntuk menerima persyaratan.

123
sumber
4
Saya mendapat kesalahan xcode-pilih: kesalahan: direktori pengembang tidak valid '/Applications/Xcode.app/Contents/Developer'
Mohammed Rafeeq
14
Tidak berfungsi untuk saya dengan Xcode 8. Saya telah menerima lisensi melalui petunjuk ini dan masih mendapatkan kesalahan yang sama.
Violet Giraffe
1
Terima kasih, dengan XCode 8 setelah mengedit default_pre.prf, ini berfungsi!
Libor B.
11
Bagi mereka yang bertanya-tanya di mana folder instalasi: itu akan tergantung pada pengaturan manajer paket Anda: / usr / local / Cellar / qt55 untuk Homebrew, / opt / local / libexec / qt5 (-mac) untuk macports.
yogodoshi
3
Dengan homebrew, setelah menginstal [email protected] (yang diperlukan untuk Ruby capybara permata), saya menemukan relevan default_pre.prffile pada: /usr/local/Cellar/[email protected]/5.5.1/mkspecs/features/mac/default_pre.prf. Saya juga mencoba pendekatan Rudolf Ratusiński, dan sementara pendekatan itu berhasil mengatasi punuk pertama, hal itu menghasilkan banyak pesan palsu yang kemudian tidak saya dapatkan ketika saya menggunakan pendekatan ini sebagai gantinya.
Ben Hocking
81

Jika Anda mengubah konten Qt_install_folder/5.7/clang_64/mkspecs/features/mac/default_pre.prf maka itu hanya akan berfungsi untuk kit Desktop, bukan untuk ex. simulator.

Cara yang lebih baik adalah dengan membuat symlink:

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

jadi Anda tidak perlu mengubah file .prf untuk semua target.

Rudolf Ratusiński
sumber
1
Saya lebih suka versi ini, jadi tampilannya tidak terlalu berantakan dibandingkan mengedit file cfg.
tjeden
3
Ini menyebabkan masalah nanti ketika xcrun dipanggil dengan parameter yang tidak didukung oleh xcodebuild (parameter -f hilang).
mrAlmond
3
Sepertinya masalah qt. Jadi saya menganggap lebih berbahaya menambahkan tautan sym yang bertahan lama di dalam distrib xcode daripada mengubah file conf qt yang akan diganti oleh Qt 5.7.1
ALoopingIcon
1
Jangan lakukan ini, itu mengacaukan proyek aplikasi iphone saya.
Chchwy
1
Saya menaikkan suara ini terlalu cepat dan mengunci ... Saya mengalami masalah parameter -f.
BuvinJ
26

Ini akan melakukan triknya:

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

Jalankan ini di terminal Anda.

Shnd
sumber
berfungsi di Xcode8 dan lebih mudah daripada langkah lainnya. Terima kasih!
Misha
Dikonfirmasi berfungsi pada macOS Sierra 10.12.4 dengan Xcode 8 - Terima kasih!
Dylan Pierce
1
Ini masih berfungsi di macOS High Sierra 10.13.5 dengan Xcode 9.4.1 - Terima kasih!
d1jhoni1b
Dikonfirmasi bahwa ini berfungsi di macOS Catalina 10.15.2 dengan Xcode 11.3.
RNickMcCandless
11

Bagi pengguna Xcode 8, ada masalah lain. Lihat di sini untuk solusi sementara hingga Qt 5.7.1 dirilis:

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

Untuk meringkas:

Buka Qt_install_folder/5.7/clang_64/mkspecs/features/mac/default_pre.prfdi editor teks, dan ganti ini:

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

dengan ini:

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

Jika Anda membangun Qt dari sumber dengan XCode 8.x, Anda harus mengubah argumen "-find" dalam file qt-everywhere-enterprise-src-5.7.0/qtbase/configuredi baris 551 sehingga terlihat seperti:

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

Berhasil menyelesaikannya dengan menginstal versi lengkap Xcode, menyetujui persyaratan, lalu menggunakan xcode-select --reset.

Pada dasarnya masalahnya adalah xcode yang Anda tunjuk /Library/Developer/CommandLineToolstidak memungkinkan Anda menerima syarat & ketentuan. Jadi setelah menginstal & mengatur ulang lokasi, semua harus beres

Ramses
sumber
0

Bagi saya, satu-satunya cara untuk bekerja dengan benar adalah dengan mengomentari baris tentang xcrun dengan '#':

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

Di file: Qt_install_folder / 5.7 / clang_64 / mkspecs / features / mac / default_pre.prf

Marcelo
sumber
0

Hanya untuk menambahkan sedikit ke banyak jawaban lama dalam semangat "Ini berhasil untuk saya" Saya menemukan bahwa dengan meluncurkan Xcode, masuk ke akun pengembang saya (hanya yang gratis) dan kemudian mengatur alat Perintah di "Lokasi" . Saya bisa mendapatkan

'sudo / usr / bin / xcodebuild -license setuju'

bekerja. yaitu meluncurkan proses setuju di baris perintah dan saya setuju setelah membaca dengan cermat semua 14 juta halaman hal.

Saya tidak perlu mengedit apa pun.

Sistem saya adalah Mojave 10.14.6 dan Xcode 10.3 (10G8).

nerak99
sumber