Kesalahan penyusun Xcode versi 4.6.2 (4H1003)


88

Saya baru saja memperbarui ke Xcode versi 4.6.2 (4H10003) dan mencoba menjalankan proyek aplikasi yang sebelumnya berfungsi di simulator dan menerima kesalahan berikut dan build gagal.

File PCH dibangun dari cabang yang berbeda ((clang-425.0.27)) dari kompiler ((clang-425.0.28))

Apa yang salah dan bagaimana cara memperbaikinya?


Saya mencoba melakukan Produk -> Bersihkan dan hapus aplikasi yang dibuat sebelumnya dari simulator. Tidak ada yang berhasil.
OscarTheGrouch

2
"Clean Build Folder" tidak menyelesaikan masalah saya saat membangun ke perangkat (dicoba beberapa kali). Saya harus "Membersihkan Folder Bangun", membangun ke simulator, kemudian membangun ke perangkat itu diselesaikan.
DBD

Jawaban:


184

Lakukan pembersihan proyek; tahan Option sehingga Anda membersihkan seluruh folder build dan perantara. Anda mungkin harus keluar dari Xcode dan membuang seluruh konten folder DerivedData dengan tangan di Finder, seperti yang saya jelaskan di sini: Cara Mengosongkan Cache dan Membersihkan Semua Target Xcode 4


Ya, bersih juga bekerja untuk saya. Kesalahannya hanya mengatakan bahwa header yang dikompilasi sebelumnya dibuat dengan versi yang berbeda dan tidak kompatibel dengan versi kompiler terbaru.
zingle-dingle

Jika ini tidak terjadi pada Anda pada peningkatan Xcode sebelumnya, Anda hanya beruntung. Itu terjadi pada saya. Anda terbiasa setelah beberapa saat ...
matt

Ini berfungsi untuk saya setelah melakukan 'Clean Build Folder' dengan opsi ditahan. Terima kasih!
Lukas

1
Ini berhasil untuk saya, terima kasih ... Saya tidak tahu memegang opsi melakukan pembersihan yang berbeda.
OscarTheGrouch

Ini hanya berfungsi untuk membangun di dalam Xcode. Jika Anda membangun dari baris perintah, lihat pos Rodrigo Lima di bawah ini.
Jeff

21

Buka proyek Anda Build Settings, temukan pengaturan bernama Precompiled Headers Cache Path, lalu hapus folder itu


Hanya tindakan ini yang membantu saya dengan masalah yang disebutkan. Terima kasih!
Oranye

13

Lakukan pembersihan menggunakan command+shift+kdan jalankan kembali proyek yang ada.

masukkan deskripsi gambar di sini


9

Dari Catatan Rilis XCode 4.6.2

Masalah Dikenal

Bangunan

Saat membuat produk yang sebelumnya dibuat dengan Xcode 4.6.1 atau yang lebih lama, pembuatan gagal dengan kesalahan yang mirip dengan ini:

File PCH dibangun dari cabang yang berbeda ((clang-425.0.27)) dari kompiler ((clang-425.0.28))

Untuk mengatasi masalah ini, pilih Produk> Bersihkan sebelum membuat produk Anda. 13663167

Melakukan Produk> Pekerjaan bersih


1
Ya, itu adalah masalah dengan versi sebelumnya tetapi diakui layak disebutkan di catatan rilis sekarang. Juga, mereka tidak memberikan solusi untuk orang yang tidak menggunakan Xcode sebagai IDE, @sycx melakukannya (hapus Jalur Cache Headers yang Dikompilasi Sebelumnya).
A-Live

9

Saya sudah mencoba semua hal di atas dan berfungsi dengan baik dari Xcode UI, tetapi masih gagal untuk saya ketika saya menjalankan xcodebuild dari baris perintah .

Itu karena dependensi ke pustaka lain dan header pra-kompilasi mereka. Saat menjalankan dari baris perintah, terlihat seperti xcodebuild menyimpan / membaca header yang telah dikompilasi sebelumnya dari sini:

/var/folders/v0/ztxy9kls7sv05dpmvjgg_xwr0000gn/C/com.apple.Xcode.501/SharedPrecompiledHeaders

Setelah membersihkan folder tersebut, xcodebuild berhasil.


2
Lokasi folder ini akan berbeda untuk setiap orang, jadi cara cepat untuk menemukan folder yang tepat untuk dibersihkan adalah dengan menggunakan find + grep ... sudo find / var / folder | grep SharedPrecompiled
Greg Combs

1
Saya memiliki masalah yang sama. Menjalankan dari baris perintah gagal, meskipun saya dapat membuat dari dalam Xcode. Saya akhirnya menjalankan: sudo find /private/var/folders -name SharedPrecompiledHeadersdan kemudian mengosongkan direktori yang dihasilkan. Bekerja seperti pesona.
Jeff

Jika saya bisa memberikan ini suara positif tambahan, saya akan melakukannya. Jelas membersihkan sepertinya tidak berhasil dari saya saat membangun dari baris perintah. Saya berharap itu akan terjadi, tetapi mengetahui di mana mencari header yang telah dikompilasi sangat membantu.
John Bowers

4

Khususnya jika Anda membangun dari baris perintah atau Anda memiliki skrip build, membersihkan target xcode saja tidak cukup. Anda harus menghapus folder ini.

Lokasi pasti dari tajuk yang telah dikompilasi dapat ditemukan dalam proyek, bagian dari jalur folder acak (saya kira), esp setelah /var/folders/xx..xxx/C.

Target -> build settings => "Build locations" -> Precompiled headers cached path

Jalankan Terminal dan pergi ke folder ini dan hapus (gunakan perintah),

#rm -fr SharedPrecompiledHeaders

masukkan deskripsi gambar di sini


Jawaban yang bagus! Tapi saya tidak punya folder seperti itu di lokasi itu (bahkan di Terminal prompt menggunakan ls -lAhF). Namun menutup Xcode dan kemudian menghapus folder com.apple.Xcode.501 bekerja dengan baik.
RedYeti

Lokasi pasti dari tajuk yang telah dikompilasi dapat ditemukan dalam proyek, bagian dari jalur folder acak (saya kira), esp setelah /var/folders/xx..xxx/C.
karim

Maaf - saya tidak jelas. Ya, jalur akan selalu berubah di bawah / var / folder / * tetapi folder yang tidak ada adalah "SharedPrecompiledHeaders" - yang mengejutkan saya. Tetapi menghapus folder induk yang saya sebutkan seharusnya berfungsi tanpa masalah.
RedYeti

4

Saya harus menghapus secara manual. ~/Library/Developer/Xcode/DerivedData/ Bersihkan tidak berhasil untuk saya.


0

gunakan "command + shift + k" untuk membersihkan proyek Anda, maka Anda akan baik-baik saja.


0

Bersihkan proyek Anda dan jalankan

Produk-> Bersihkan Lalu, Jalankan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.