Xcode terhenti di Pengindeksan

116

Sebuah proyek yang telah saya kerjakan selama 2 bulan berhenti bekerja tanpa alasan karena Xcode terhenti di "Pengindeksan". Saya tidak bisa membangun proyek lagi. Jika saya mencoba membangun, Xcode macet dan saya harus keluar paksa. Ini hanya terjadi dengan proyek ini.

Saya mencoba membersihkan semua data turunan tetapi tidak membantu.

Saya menggunakan Xcode 4.5.2.

Ada ide?

tomDev
sumber
Apakah proyek tersebut terkait dengan semacam kontrol versi? Ketika terhubung dengan repositori, ia cenderung terus memeriksa status sumber secara teratur dan setelah itu mengindeks file. Jika proyek Anda besar, ini mungkin menyebabkannya macet di pengindeksan.
gibertoni
Proyeknya tidak terlalu besar. Hari ini saya menambahkan kerangka kerja GameKit, tetapi berfungsi dengan baik sepanjang hari. Ketika saya akan menyelesaikan pengaturan Game Center, masalah dimulai. Saya mengatakan "Mengindeks | Diproses 3 dari 4 File". Terkadang "0 dari 1 File", terkadang 83 dari 84 file ... Saya rasa saya harus membuat proyek baru dan menyalin dan menempel hampir semuanya. Akankah beberapa jam ...
tomDev
2
Apple dan kehebatannya memiliki masalah yang sama pada xcode 5
Roma-MT
2
Saya menghadapi masalah ini di Xcode 9.1. Setelah 4 tahun mereka masih memiliki masalah yang sama: |
Sabri Meviş
3
Xcode 10 GM juga
QED

Jawaban:

163
  1. Buka Folder Proyek Anda.
  2. Temukan file ProjectName.xcodeproj.
  3. Klik kanan Salin dan Tempel ke Tempat Aman.
  4. Klik kanan Tampilkan Isi Paket.
  5. Temukan file project.xcworkspace dan hapus file itu.
  6. Buka kembali Proyek Anda dan bersihkan serta Bangun kembali.

Jika masalah Anda tidak teratasi, ganti file dengan file cadangan Anda.

Pratik Mistry
sumber
1
Tidak dapat menemukan file project.xcworkspace di dalam file * .xcodeproj pada xcode 6.2. Jawaban @ aleksandar-vacic berhasil buat saya.
Kie
xcode tampaknya masih macet pada "mengindeks | menunggu xcodebuild", namun, itu berhasil dibangun ketika saya menekan tombol putar, jadi itu sesuatu.
cabaiNUT
3
Bisakah Anda menjelaskan untuk apa file ini / bagaimana kaitannya dengan masalah yang dihadapi?
de.
@marlonpya Saya kira Anda bekerja dengan cocoapods dalam hal ini file ruang kerja terpisah dari yang saya bicarakan. Di sini saya berbicara tentang file di dalam file .project. Semoga ini membantu tetapi selalu lakukan pencadangan sebelum mengubah apa pun di file proyek atau file ruang kerja.
Pratik Mistry
Saat menggunakan cocoapods ikuti instruksi yang sama & buka folder root file .xcworkspace
Leap Hawk
70
  1. Tutup proyek itu dari Xcode
  2. Buka Xcode Organizer, temukan proyek yang bermasalah
  3. Hapus folder Derived Data di Organiser
  4. Tutup / buka kembali Xcode

Nuking Derived Data adalah hal pertama yang dicoba dalam semua kasus Xcode yang tidak berfungsi dengan baik

Aleksandar Vacić
sumber
9
Perhatikan bahwa di Xcode 6.4 Anda harus pergi ke Window → Projects daripada Organizer.
kennytm
Solusi yang jauh lebih sederhana daripada jawaban yang diterima, terima kasih!
Tim
8
Data Turunan ada di ~ / Library / Developer / Xcode / DerivedData / di komputer saya.
Suragch
23

Saya memiliki masalah yang tepat ini, itu disebabkan oleh literal array 20 item. Harus beralih ke sintaks yang berbeda. Sangat konyol.

Jehan
sumber
4
Sama untuk ku. Bekerja untuk larik 4x4. Larik 6x6 terlalu banyak untuk xcode ... drama
dfens
@Jehan Anda benar tetapi jika Anda mendefinisikan jenis array itu tidak akan memakan waktu maka masalah saya teratasi. Misalnya, biarkan propertyType: [[[String: String]]] = [[["propertyKey": "All Type"], ["propertyKey": "House"]], [["propertyKey": "Apartment & Unit" ], ["propertyKey": "Townhouse"]] ....... Selanjutnya] Jika Anda tidak menentukan jenisnya, ini akan memakan waktu lebih lama
Shrikant K
2
Sama untuk ku. Ini benar-benar kegagalan yang aneh dan nyata pada pihak Apple dan Xcode
wuf810
1
Bagaimana Anda menemukan tempat-tempat di dalam kode yang membuat compiler terjebak?
Tomasz Nazarenko
1
@TomaszNazarenko - Lihat jawaban saya di bawah. Anda bisa mendapatkan xcode untuk memperingatkan Anda tentang kode yang terlalu lama untuk dikerjakan.
greencardigan
18
  1. Tutup Xcode yang dibuka
  2. rm -rf ~/Library/Developer/Xcode/DerivedData
  3. Klik kanan PROJECT_NAME.xcworkspace Anda, pilih 'tampilkan konten', dan hapus folder 'xcuserdata'
kjian
sumber
9

Saya memiliki masalah yang sama, dan menemukan bahwa saya secara tidak sengaja mendefinisikan kelas sebagai subkelasnya sendiri. Saya tidak mendapat peringatan atau kesalahan untuk ini tetapi kompilasi macet.

class mainClass : mainClass
{
    ...
}
Philipp Otto
sumber
Faktanya, ini adalah solusi untuk pengindeksan yang macet dalam kasus saya. Jawaban yang bagus!
rghome
Mengapa ini menyebabkan (secara efektif) crash sub-proses Xcode dan tidak menghasilkan kesalahan seperti bug kode lainnya?
Kirkland
8

Saat menggunakan Xcode 6 dan tertulis

Menunggu dibuat

Mungkin instance make sudah berjalan. Hentikan proses dan hasil pengindeksan. Konyol, tapi berhasil untukku.

oarfish
sumber
Ini memperbaikinya untuk saya. Saya memiliki container Docker yang berjalan dengan "make start" di latar belakang.
Devin Young
7

Hal lain untuk dicoba jika Anda mencoba memecahkan masalah pengindeksan dan Anda sejauh ini di halaman!

Coba tambahkan tanda ini ke pengaturan build Anda.

-Xfrontend -warn-long-expression-type-checking=400

membangun bendera pengaturan

Ini akan menyebabkan peringatan dimana kompilator membutuhkan waktu lama untuk menyimpulkan ekspresi yang kompleks.

peringatan

Hal ini dapat menyebabkan error build yang akan hilang setelah Anda menemukan ekspresi lambat lalu menghapus flag build.

greencardigan
sumber
Ini adalah jawaban yang sempurna dan tepat.
jaya raj
4

Tahan alt> Produk> Bersihkan Folder Bangun

rogger2016
sumber
4

Ini adalah bug Xcode (Xcode 8.2.1) dan saya telah melaporkannya ke Apple, ini akan terjadi ketika Anda memiliki kamus besar literal atau kamus literal bersarang. Anda harus memecah kamus Anda menjadi bagian-bagian yang lebih kecil dan menambahkannya dengan metode append sampai Apple memperbaiki bug tersebut.

Saeed Ir
sumber
4
  • Pertama, putuskan sambungan dari jaringan. Baik jaringan kabel dan jaringan nirkabel Anda harus dimatikan.
  • Kedua, matikan com.apple.dt.SourceKitServiceprosesnya. Kemudian Xcode akan mulai mengindeks lagi, bukan macet.

masukkan deskripsi gambar di sini

ooOlly
sumber
1
Tampaknya dipanggil com.apple.dt.SKAgentdi Xcode 10.
lemonmojo
3

Bagi saya benar-benar menutup Xcode dan kemudian memulai kembali proyek berhasil.

Ini bukanlah solusi untuk pertanyaan awal, saya tidak percaya, tetapi ini adalah satu hal yang lebih sederhana untuk dicoba sebelum menghapus file dan folder, dll. Penghargaan untuk jawaban ini atas idenya.

Suragch
sumber
3

Ini terjadi pada saya. Jika Anda menggunakan cocoapods lakukan ini:

  1. Hapus project.xcworkspace
  2. Instal ulang pod menggunakan 'pod install' di terminal
  3. Ini akan membuat project.xcworkspace baru
  4. Buka project baru.xcworkspace -> Clean -> Build
meow2x
sumber
1
Terima kasih. Saya menghadapi masalah di xcode11.1 dan ini berhasil untuk saya
Rahul Parikh
1
Punya masalah ini dengan Xcode 11.5, diperbaiki oleh ini juga.
frankenapps
2

Saya memiliki masalah serupa di mana Xcode akan menghabiskan banyak waktu untuk mengindeks dan sering hang membangun proyek, di mana saya harus berhenti secara paksa dan meluncurkan kembali Xcode. Itu sangat mengganggu.

Kemudian saya melihat peringatan dalam proyek tentang penugasan yang tidak tepat selfsebagai delegasi. Benar saja, ada protokol yang hilang dalam deklarasi kelas. Perhatikan bahwa ada penugasan serupa dalam kode sampel OP (meskipun tidak mungkin untuk mengetahui dari sampel apakah protokol yang benar dinyatakan):

leaderboardController.leaderboardDelegate == self;

Setelah menyelesaikan peringatan itu (dengan mendeklarasikan protokol yang diimplementasikan dengan benar), Xcode berhenti berperilaku buruk. Juga, saya harus mencatat bahwa proyek itu mengeksekusi dengan benar sejak metode protokol yang diimplementasikan. Hanya saja Xcode tidak dapat memastikan bahwa protokol tersebut seharusnya diimplementasikan oleh kelas.

Peter Gluck
sumber
2

Tidak ada yang bekerja untuk saya, proyek saya terlalu besar (penggabungan tujuan c, c++, swift, dan javafile dengan j2obj). Saya telah menonaktifkan pengindeksan Xcode dan bekerja tanpa penyelesaian kode selama berbulan-bulan (dan itu merepotkan). Tapi akhirnya saya menemukan solusi. Idenya adalah untuk menjaga Xcode mengindeks kode, tetapi untuk membatasi penggunaan CPU dengan alat eksternal seperti cputhrottle.

Jadi pertama-tama Anda perlu menginstal cputhrottle di terminal

buat instal cputhrottle

Kemudian batasi proses pengindeksan Xcode seperti ini (20 = 20%)

sudo cputhrottle $ (pgrep -f com.apple.dt.SKAgent) 20

Saya telah mengekspos "solusi" saya di sini dengan detail mode: Bagaimana mencegah Xcode menggunakan 100% CPU saat mengindeks proyek-proyek besar

jptsetung.dll
sumber
Ini membantu, meskipun cputhrottle tidak lagi di homebrew. Anda dapat menggunakan cpulimit sebagai gantinya, yang memiliki sintaks yang sedikit berbeda: "sudo cpulimit -l 20 -p $ (pgrep -f com.apple.dt.SKAgent)" - Meskipun sekarang saya dapat melacak lagi (sebelumnya tidak mungkin), Saya lebih suka mencari tahu apa yang membutuhkan waktu lama untuk mengindeks dan melewatkannya dari pengindeksan, tetapi saya tidak tahu apa itu, bagaimana cara mengetahuinya, atau bagaimana cara melewatkan sesuatu (saya curiga beberapa biner terkait yang lebih besar atau bahkan mungkin meningkatkan? ? Saya hanya mengkompilasi C ++, tidak menggunakan Swift) ..
Eike
Oke, saya harus mendayung kembali. Tampaknya membantu tetapi sebenarnya saya mendapat beberapa perilaku aneh kemudian dengan skagen cpulimiting. Itu hanya mengatasi gejala saja, jadi tidak disarankan.
Eike
Saya masih menggunakan ini. Pilihan lainnya adalah menonaktifkan pengindeksan Xcode sepenuhnya, tetapi itu yang terburuk bagi saya. Jika saya tidak melakukan ini, Xcode akan terus mengindeks 100% setiap kali saya memodifikasi file (jadi pada dasarnya 24 jam / 24), dan ketika saya mengetik di editor, ia mencetak 1 karakter setiap 2 detik, tidak dapat digunakan.
jptsetung
Nah, ini adalah metode brute force yang efektif untuk mengatasi masalah tersebut. Jika itu berhasil untuk Anda, itu bagus. Saya mengalami Xcode crash / swod setelah melakukannya. Dan kemudian saya mencoba langkah 3 dalam jawaban Kijans, (yaitu tidak hanya menghapus data turunan, tetapi juga menghapus .xcuserdata dari .xcworkspace) dan sekarang semuanya baik-baik saja. Tidak tahu tentang yang itu ..
Eike
1

Punya masalah serupa di Xcode 6.4. Bilah kemajuan menunjukkan bahwa "Pengindeksan" adalah "Dijeda". Mencoba menghapus project.xcworkspace, lalu menghapus Data Turunan seperti dijelaskan di atas. Tampaknya tidak membantu. Memperhatikan bahwa posting di atas juga menyarankan untuk memperbaiki peringatan, dan karena saya telah mewarisi proyek besar ini dengan 180 peringatan, saya berkata pada diri sendiri, "Sungguh hari yang baik untuk memperbaiki peringatan ini". Saat saya memperbaiki peringatan, setengah jam kemudian, saya melihat bahwa bilah kemajuan "Pengindeksan" telah meningkat dari 10% menjadi sekitar 20%. Satu jam kemudian, itu menjadi 50%, lalu satu jam lagi menjadi 80%, lalu setelah setengah jam lagi selesai! Kesimpulan: Tambahkan "makan siang atau tidur siang" pada saran di atas.

Jerry Krinock
sumber
Saya pikir ini adalah pilihan terakhir bagi saya.
Rishab
1

Saya mengalami masalah yang sama untuk Xcode 7.0 beta. Dalam kasus saya, nilai untuk "Provisioning Profile" dan "Product bundle identifier" dari "Build Settings" berbeda antara PROJECT dan TARGETS. Saya menetapkan nilai yang sama untuk mereka. Dan saya juga menggunakan nilai yang sama untuk TARGET dari "appName" dan "appNameTest". Kemudian tutup proyek dan buka kembali. Itu menyelesaikan kasus saya.

manispin
sumber
1

Dalam kasus saya, menghapus direktori data turunan tidak membantu. Rupanya saya memiliki file yang dikunci oleh proses lain, karena setelah menutup beberapa jendela terminal dan emacs, dan menghentikan proses pengemas react-native, semuanya terselesaikan.

chetstone
sumber
Sama di sini, saya telah mengganggu pembangunan kembali Kartago sebelumnya. Rupanya tidak semua proses berhenti berjalan, sehingga saya menganggap beberapa file tetap digunakan. Menutup Terminal dan membuka kembali XCode berhasil.
CyberDude
1

Bagi saya, saya melakukan kesalahan bodoh. Saya menulis Kelas seperti ini:

class A: A {
.......
}

Sebuah kelas mewarisi dirinya sendiri yang menyebabkan pembekuan. Tidak ada petunjuk pesan dari Xcode.

Victor Choy
sumber
Ini adalah penyebab yang sangat mungkin. Itu saja dalam kasus saya. Saya cukup yakin saya mengalami ini sebelumnya juga.
Formulir
1

Saya telah mengalami masalah ini di beberapa proyek dengan Xcode 9.3.1 dan dalam kasus saya, masalahnya adalah karena beberapa kode cepat yang karena beberapa alasan tidak disukai Xcode. Masalah ini sulit dipecahkan karena sulit menemukan file apa yang menyebabkan masalah.

Ketika saya memiliki masalah ini, saya menghapus beberapa file dari proyek Xcode (menghapus referensi) dan saya mencoba untuk menguji apakah pengindeksan berfungsi. Proses saya untuk melakukannya

  1. Hapus beberapa file
  2. Tutup Xcode
  3. Buka Xcode
  4. Jika pengindeksan selesai, coba ganti nama beberapa metode jika berfungsi, mungkin file yang telah Anda hapus memiliki sesuatu yang aneh untuk Xcode.

Dalam kasus saya, saya memiliki definisi kelas dengan ekstensi reaktif dalam file yang sama dan untuk beberapa alasan Xcode tidak menyukainya, saya memindahkan ekstensi reaktif ke file lain dan sekarang pengindeksan berfungsi dengan baik.

El Belga
sumber
Ini adalah solusi yang sangat bagus karena memungkinkan untuk mengidentifikasi kemacetan bahkan dalam kode yang belum Anda tulis. Dalam kasus saya, itu adalah pod / lib yang tidak terawat dan butuh waktu berhari-hari untuk mengidentifikasinya karena tidak ada peringatan yang dikeluarkan, bahkan dengan tanda "-Xfrontend -warn-long-expression-type-memeriksa = 300".
Cédric
0

Juga berhenti menjalankan aplikasi. jika Anda memiliki aplikasi lain yang berjalan dengan xcode Anda, hentikan dulu dan Anda akan melanjutkan pengindeksan.

NFerocious
sumber
0

Bagi saya, penyebabnya adalah saya membuka file yang sama di Editor Utama dan Editor Asisten secara bersamaan. Setelah saya menutup Asisten Editor, itu masuk. (Xcode Versi 7.2.1)

wye
sumber
0

Tutup Xcode Anda, tutup semua klien git (pohon sumber atau terminal) jika dibuka dan akhirnya mulai ulang proyek Anda.

Mohit Anand
sumber
0

Menghadapi ini baru-baru ini di XCode 7.3.1 - bagi saya, saya melihat penggunaan RAM akan 100% ke CleanMyMac3. Masalah secara ajaib diperbaiki sendiri setelah saya menghidupkan ulang mesin saya. Namun dalam semua keadilan, saya sudah melanjutkan dan mencoba jawaban yang diterima, jadi Anda ingin melakukan hal yang sama sebelum memulai ulang untuk berjaga-jaga :-)

Angad
sumber
0

Saya memperbaikinya dengan hanya menghapus aplikasi dari perangkat saya dan membangun kembali.

robertsan
sumber
0

Saya mengalami masalah yang sama di Swift 2.2

Itu ada hubungannya dengan fungsi generik yang kelebihan beban

func warnLog() {
    print("Warning line: \(#line) file: \(#file) ")
}

func warnLog<T>(input:T? = nil) -> T? {
    print("Warning line: \(#line) file: \(#file) ")
    return input
}

func warnLog<T>(input:T) -> T {
    print("Warning line: \(#line) file: \(#file) ")
    return input
}

yang perlu saya lakukan adalah menghapus salah satu kelebihan yang tidak digunakan

func warnLog<T>(input:T? = nil) -> T? {
    print("Warning line: \(#line) file: \(#file) ")
    return input
}
Chéyo
sumber
0

Kasus saya: itu bukan file project.xcworkspace, itu bukan folder Derived Data.

Saya telah membuang banyak waktu. Lebih buruk lagi, tidak ada pesan kesalahan. Tidak ada petunjuk dari pihak Xcode. Benar-benar tersesat.

Akhirnya fungsi ini (dengan lebih dari 10 parameter) bertanggung jawab.

func animationFrames(level: Float,
                     image: String,
                     frame0: String,
                     frame1: String,
                     frame2: String,
                     frame3: String,
                     frame4: String,
                     frame5: String,
                     frame6: String,
                     frame7: String,
                     frame8: String,
                     frame9: String,
                     frame10: String) {
}

Menjadi gila! Yang benar adalah itu mengkhawatirkan (karena tidak ada kesalahan sintaks, atau jenis apa pun)

Markus
sumber
0

Untuk masalah pengindeksan XCode 9.3 - Hapus instalan XCode dan instal lagi dari nol. Bekerja untuk saya.

Maximo Lucosi
sumber
1
Ukuran XCode tidak sedikit KB. Ini beberapa GB.
iphondroid
0

Masalah ini terjadi pada saya saat mesin saya kehabisan ruang swap. Menutup beberapa program dan tab browser dan build tiba-tiba berhasil setelah 30 menit macet di tempatnya. Tidak ada hubungannya dengan data turunan, file terkunci, dll. Di sisi saya.

Jacob Torres
sumber
0

Saya sudah mencoba semua hal yang terdaftar, pengindeksan tetap beku. Ini membantu saya: Jika pengindeksan Anda macet, dan Anda memiliki satu atau lebih proses cepat yang memakan 99% cpu Anda - cukup matikan tugas cepat ini, tunggu sebentar, dan kemajuan akan bergerak. Itu bisa berulang, sampai mencapai selesai, dalam kasus saya, saya mematikan proses 7 kali, tetapi pada akhirnya, pengindeksan selesai!

David Kyslenko
sumber
0

Punya masalah ini pada proyek SwiftUI. Ternyata salah satu tampilan SwiftUI saya memiliki variabel yang dinyatakan salah. Saya punya:

@EnvironmentObject var roomViewModel

dimana saya membutuhkan:

@EnvironmentObject var roomViewModel: RoomViewModel

Tidak ada kesalahan kompiler, hanya pengindeksan tanpa akhir. Setelah saya memperbaiki kesalahannya, proyek dibangun dengan cepat.

Christopher Monsour
sumber