Xcode Endekslemede takılı kaldı


116

2 aydır çalıştığım bir proje, Xcode "İndeksleme" ye takıldığı için sebepsiz yere çalışmayı bıraktı. Artık projeyi inşa edemiyorum. Oluşturmaya çalışırsam, Xcode donuyor ve çıkmaya zorlamam gerekiyor. Bu sadece bu proje ile olur.

Tüm türetilmiş verileri temizlemeyi denedim ama yardımcı olmadım.

Xcode 4.5.2 kullanıyorum.

Herhangi bir fikir?


Proje bir tür sürüm kontrolü ile ilişkili mi? Bir havuza bağlandığında, kaynak durumunu düzenli olarak kontrol etme eğilimindedir ve bundan sonra dosyaları indeksler. Projeniz büyükse, bu, indekslemede takılıp kalmasına neden olabilir.
gibertoni

Proje o kadar büyük değil. Bugün GameKit çerçevesini ekledim, ancak tüm gün harika çalışıyordu. Game Center'ı kurmayı bitirmek üzereyken sorun başladı. "İndeksleme | 3/4 Dosyayı İşlendi" diyorum. Bazen "0/1 Dosya", bazen 84 dosyadan 83'ü ... Sanırım yeni bir proje oluşturmam ve hemen hemen her şeyi kopyalayıp yapıştırmam gerekecek. Birkaç saat olacak ...
tomDev

2
Apple ve onun muhteşemliği xcode 5'te aynı probleme sahip
Roma-MT

2
Xcode 9.1'de bu sorunla karşılaşıyorum. 4 yıl sonra hala aynı sorunu yaşıyorlar: |
Sabri Meviş

3
Xcode 10 GM çok
QED

Yanıtlar:


163
  1. Proje Klasörünüzü açın.
  2. ProjectName.xcodeproj dosyasını bulun.
  3. Sağ Tıkla Kopyala ve Güvenli Yere Yapıştır.
  4. Paket İçeriğini Göster'e sağ tıklayın.
  5. Project.xcworkspace dosyasını bulun ve bu dosyayı silin.
  6. Projenizi yeniden açın ve temizleyin ve Yeniden Oluşturun.

Sorununuz çözülmezse, dosyayı yedek dosyanızla değiştirin.


1
Xcode 6.2'deki * .xcodeproj dosyasında project.xcworkspace dosyası bulunamıyor. @ aleksandar-vacic 'in cevabı benim için çalıştı.
Kie

xcode hala "indeksleme | xcodebuild için bekliyor" gibi görünüyor, ancak, oyuna bastığımda başarılı bir şekilde oluşturuyor, bu yüzden bir şey.
chiliNUT

3
Bu dosyanın ne için olduğunu / mevcut sorunla nasıl ilişkili olduğunu açıklar mısınız?
de.

@marlonpya Sanırım cocoapods ile çalışıyorsunuz, bu durumda benim bahsettiğim çalışma alanı dosyası ayrı. Burada .project dosyası içindeki dosyadan bahsediyorum. Bunun yardımcı olacağını umuyoruz, ancak proje dosyası veya çalışma alanı dosyalarındaki herhangi bir şeyi değiştirmeden önce her zaman yedekleme yapın.
Pratik Mistry

Cocoapod'ları kullanırken aynı talimatları izleyin ve kök klasör .xcworkspace dosyasını açın
Leap Hawk

70
  1. Xcode'dan o projeyi kapatın
  2. Xcode Organizer'ı açın, sorunlu projeyi bulun
  3. Düzenleyicideki Türetilmiş Veriler klasörünü silin
  4. Xcode'u kapat / yeniden aç

Nuking Derived Data, Xcode'un hatalı çalıştığı tüm durumlarda denenecek ilk şeydir


9
Xcode 6.4'te Düzenleyici yerine Pencere → Projeler'e gitmeniz gerektiğini unutmayın.
kennytm

Kabul edilen cevaptan çok daha basit bir çözüm, teşekkürler!
Tim

8
Türetilmiş Veriler, makinemde ~ / Library / Developer / Xcode / DerivedData / içinde.
Suragch

23

Tam olarak bu problemi yaşadım, 20 maddelik bir diziden kaynaklanıyordu. Farklı sözdizimine geçmek zorunda kaldı. Oldukça aptalca.


4
Benim için aynı. Dizi 4x4 için çalışır. Dizi 6x6 xcode için çok fazlaydı ... drama
dfens

@Jehan Haklısınız, ancak bir dizi türünü tanımlamanız zaman almayacaktır, o zaman sorunum çözülür. Örneğin, let propertyType: [[[String: String]]] = [[["propertyKey": "All Types"], ["propertyKey": "House"]], [["propertyKey": "Apartman ve Birim" ], ["propertyKey": "Townhouse"]] ....... Öyleyse] Türü tanımlamazsanız, daha fazla zaman alacaktır
Shrikant K

2
Benim için aynı. Bu, Apple ve Xcode açısından kesinlikle tuhaf ve gerçek bir başarısızlık
wuf810

1
Kodda derleyicinin takılıp kaldığı yerleri nasıl öğrenirsiniz?
Tomasz Nazarenko

1
@TomaszNazarenko - Aşağıda cevabımı görün. Çalışması çok uzun süren kod hakkında sizi uyarması için xcode alabilirsiniz.
greencardigan

18
  1. Herhangi bir açık Xcode'u kapatın
  2. rm -rf ~/Library/Developer/Xcode/DerivedData
  3. PROJECT_NAME.xcworkspace'inizi sağ tıklayın, 'içeriği göster'i seçin ve' xcuserdata 'klasörünü silin

9

Benzer bir problemim vardı ve bir sınıfı yanlışlıkla kendi alt sınıfı olarak tanımladığımı fark ettim. Bunun için herhangi bir uyarı ya da hata almadım ama derleme takıldı.

class mainClass : mainClass
{
    ...
}

Aslında, benim durumumda endekslemenin takılıp kalmasının çözümü buydu. Mükemmel cevap!
rghome

Bu neden bir Xcode alt sürecinin (etkin bir şekilde) çökmesine neden olur ve diğer kod hataları gibi bir hata üretmez?
Kirkland

8

Xcode 6 kullanırken ve diyor ki

Yapmak için bekliyorum

Bir make örneği zaten çalışıyor olabilir. Süreci ve indeksleme gelirlerini sonlandırın. Aptalca ama benim için çalıştı.


Bu benim için düzeltti. Arka planda "make start" ile çalışan bir Docker konteynerim vardı.
Devin küçük,

7

Dizine ekleme sorunlarını çözmeye çalışıyorsanız ve sayfanın bu kadar aşağısındaysanız, denemeniz gereken başka bir şey!

Bu bayrağı derleme ayarlarınıza eklemeyi deneyin.

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

yapı ayarları bayrağı

Derleyicinin karmaşık bir ifadeyi çıkarması uzun zaman aldığında uyarıya neden olur.

uyarı

Bu, yavaş ifadeleri bulduktan ve ardından yapı bayrağını kaldırdıktan sonra kaybolacak bir yapı hatasına neden olabilir.


Bu mükemmel ve kesin cevaptır.
jaya raj


4

Bu bir Xcode hatasıdır (Xcode 8.2.1) ve bunu Apple'a bildirdim, büyük bir sözlüğünüz veya iç içe geçmiş bir sözlüğünüz olduğunda gerçekleşecek. Sözlüğünüzü daha küçük parçalara ayırmanız ve Apple hatayı düzeltene kadar bunları ekleme yöntemiyle eklemeniz gerekir.


4
  • İlk önce ağ bağlantısını kesin. Hem kablolu ağınız hem de kablosuz ağınız kapanmalıdır.
  • İkincisi, com.apple.dt.SourceKitServicesüreci sonlandırın. Ardından XCode takılı kalmak yerine tekrar indekslemeye başlayacaktır.

görüntü açıklamasını buraya girin


1
Çağrılacak gibi görünüyor com.apple.dt.SKAgent Xcode 10'da .
lemonmojo

3

Benim için Xcode'u tamamen kapattıktan sonra projeyi yeniden başlatmak işe yaradı.

Bu orijinal soru için bir çözüm değil, inanmıyorum, ancak dosya ve klasörleri silmeden önce denemek daha basit bir şey . Fikir için bu yanıtı kredilendirin.


3

Bu bana oldu. Cocoapod kullanıyorsanız şunu yapın:

  1. Project.xcworkspace öğesini silin
  2. Terminalde 'pod install' kullanarak bölmeleri yeniden yükleyin
  3. Yeni bir proje oluşturacaktır. Xcworkspace
  4. Yeni projeyi açın. Xcworkspace -> Temizle -> Oluştur

1
teşekkür ederim. Xcode11.1'de sorunla karşılaşıyorum ve bu benim için çalışıyor
Rahul Parikh

1
Xcode 11.5 ile de bu sorunu çözmüştüm.
frankenapps

2

Xcode'un çok fazla zaman indeksleme harcadığı ve projeyi oluştururken sık sık asılı kaldığı benzer bir sorun yaşadım, bu noktada Xcode'u zorla çıkıp yeniden başlatmak zorunda kaldım. Çok can sıkıcıydı.

Sonra projede uygunsuz selfbir şekilde temsilci olarak atama konusunda bir uyarı fark ettim . Tabii ki, sınıf bildiriminde eksik bir protokol vardı. OP'nin örnek kodunda benzer bir atama olduğuna dikkat edin (ancak örnekten doğru protokolün beyan edilip edilmediğini söylemek imkansızdır):

leaderboardController.leaderboardDelegate == self;

Bu uyarıyı çözdükten sonra (uygulanan protokolü doğru şekilde bildirerek), Xcode hatalı davranmayı durdurdu. Ayrıca, protokol metotları uygulandığı için projenin doğru bir şekilde yürütüldüğüne dikkat etmeliyim . Sadece Xcode , protokolün aslında sınıf tarafından uygulanması gerektiğini doğrulayamadı .


2

Hiçbir şey (objektif birleştirme projemin çok büyük, benim için çalıştı c, c++, swiftve javaj2obj ile dosya). Xcode indekslemeyi devre dışı bıraktım ve aylarca kod tamamlanmadan çalıştım (ve bu bir acı). Ama sonunda bir çözüm buldum. Buradaki fikir, Xcode'un kodu indekslemesini sağlamak, ancak CPU kullanımını gibi harici bir araçla sınırlamaktır cputhrottle.

Öyleyse önce cputhrottle'ı terminale yüklemeniz gerekir

demlemek cputhrottle yüklemek

Ardından Xcode indeksleme sürecini bu şekilde sınırlandırın (20 =% 20)

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

Burada mod ayrıntılarıyla "çözümümü" açığa çıkardım: Büyük projeleri indekslerken Xcode'un CPU'nun% 100'ünü kullanmasını nasıl önleyebilirim?


Bu yardımcı olur, cputhrottle artık homebrew'da olmasa da. Bunun yerine cpulimit'i kullanabilirsiniz, ancak biraz farklı bir sözdizimi vardır: "sudo cpulimit -l 20 -p $ (pgrep -f com.apple.dt.SKAgent)" - Şimdi tekrar izleyebilirim (daha önce imkansız), Bunu indekslemenin neyin bu kadar uzun sürdüğünü bulmayı ve indekslemeden atlamayı tercih ederim, ancak bunun ne olduğu, nasıl bulunacağı ya da bir şeyi nasıl atlayacağım hakkında hiçbir fikrim yok (bazı daha büyük bağlantılı ikili dosyalardan şüpheleniyorum ya da belki artırabilir miyim? Sadece C ++ 'ı
derliyorum

Tamam, bunun üzerine geri dönmem gerekecek. Yardımcı oldu gibi görünüyordu ama aslında daha sonra cpulimiting skagent ile bazı tuhaf davranışlar yaşadım. Bu sadece belirtiye hitap eder, bu nedenle önerilmez.
Eike

Hala bunu kullanıyorum. Diğer seçenek, Xcode indekslemeyi tamamen devre dışı bırakmak, ama bu benim için en kötüsü. Eğer bunu yapmazsam, Xcode bir dosyayı her değiştirdiğimde (yani temelde 24 saat / 24) indekslemeyi% 100'de tutuyor ve düzenleyiciye yazdığımda her 2 saniyede bir 1 karakter yazdırıyor, kullanılamaz.
jptsetung

Bu, sorunu çözmek için etkili bir kaba kuvvet yöntemidir. Bu senin için çalışıyorsa, bu iyidir. Bunu yaptıktan sonra Xcode çökmeleri / swod'ları yaşadım. Ve sonra Kijans yanıtında 3. adımı denedim (yani yalnızca türetilmiş verileri silmekle kalmayıp, .xcuserdata'yı .xcworkspace'den kaldırın) ve şimdi her şey yolunda. Bunu bilmiyordum ..
Eike

1

Xcode 6.4'te de benzer bir sorun vardı. İlerleme çubuğu "Endekslemenin" "Duraklatıldığını" gösterdi. Project.xcworkspace'i silmeyi, ardından Türetilmiş Verileri yukarıda açıklandığı gibi silmeyi denedim. Yardımcı gibi görünmedi. Yukarıdaki yazıların da uyarıları düzeltmeyi önerdiğine dikkat çekerek ve bu devasa projeyi 180 uyarı ile miras aldığım için kendi kendime, "Ne cehennemde uyarıları düzeltmek için iyi bir gün gibi görünüyor" dedim. Yarım saat sonra uyarıları düzeltirken, "Endeksleme" ilerleme çubuğunun% 10'dan yaklaşık% 20'ye yükseldiğini fark ettim. Bir saat sonra,% 50'ye çıktı, sonra bir saat% 80'e çıktı, sonra yarım saat sonra bitti! Sonuç: Yukarıdaki önerilere "uzun bir öğle yemeği veya şekerleme" ekleyin.


Sanırım bu benim için son çare.
Rishab

1

Xcode 7.0 beta için de aynı sorunu yaşadım. Benim durumumda, "Derleme Ayarları" nın "Temel Hazırlık Profili" ve "Ürün paketi tanımlayıcısı" değerleri PROJE ve HEDEFLER arasında farklılık gösterdi. Onlar için aynı değerleri belirledim. Ayrıca "appName" ve "appNameTest" HEDEFLERİ için de aynı değerleri kullandım. Ardından projeyi kapatıp yeniden açtı. Bu benim durumumu çözdü.


1

Benim durumumda, türetilmiş veri dizinini silmek yardımcı olmadı. Görünüşe göre başka bir işlem tarafından kilitlenmiş bir dosyam vardı, çünkü birkaç terminal penceresi ve emac'i kapattıktan ve react-native bir paketleyici sürecini sonlandırdıktan sonra her şey çözüldü.


Burada da aynı şekilde, daha önce Kartaca'nın yeniden inşasını kesintiye uğratmıştım. Görünüşe göre tüm süreçler durmadı, bu yüzden bazı dosyaları kullanımda tuttuğunu varsayıyorum. Terminali kapatmak ve XCode'u kapatmak ve yeniden açmak hile yaptı.
Sibereleman

1

Benim için aptalca bir hata yaptım. Şöyle bir Sınıf yazıyorum:

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

Donmaya neden olan bir sınıf kendini miras alır. Xcode'dan mesaj ipucu yok.


Bu çok olası bir nedendir. Benim durumumda buydu. Bununla daha önce de karşılaştığıma eminim.
Form

1

Xcode 9.3.1 ile bazı projelerde bu sorunu yaşadım ve benim durumumda sorun Xcode'un bir nedenden dolayı sevmediği bazı hızlı kodlardan kaynaklanıyor. Bu sorunun çözülmesi zordur çünkü soruna hangi dosyanın neden olduğunu bulmak zordur.

Bu sorunu yaşadığımda, Xcode projesinden bazı dosyaları kaldırıyorum (referansları kaldırıyorum) ve indekslemenin çalışıp çalışmadığını test etmeye çalışıyorum. Bunu yapma sürecim

  1. Bazı dosyaları kaldırın
  2. Xcode'u kapat
  3. Xcode'u açın
  4. Eğer indeksleme biterse, bazı metodu yeniden adlandırmayı deneyin, büyük olasılıkla kaldırdığınız dosyalar Xcode için garip şeyler içeriyor.

Benim durumumda, aynı dosyada reaktif uzantıya sahip bir sınıf tanımım vardı ve bir nedenle Xcode bundan hoşlanmıyor, reaktif uzantıyı başka bir dosyaya taşıdım ve şimdi indeksleme iyi çalışıyor.


Bu, yazmadığınız bir kodda bile darboğazı belirlemeye izin verdiği için gerçekten iyi bir çözümdür. Benim durumumda bu, bakılmamış bir pod / lib idi ve "-Xfrontend -warn-long-expression-type-check = 300" bayraklarıyla bile hiçbir uyarı çıktısı olmadığını belirlemem günlerimi aldı.
Cédric

0

Ayrıca uygulamayı çalıştırmayı da durdurun. xcode'unuzla çalışan başka bir uygulamanız varsa, önce onu durdurun ve indekslemenize devam etmelisiniz.


0

Benim için, çünkü ben açtı oldu aynı hem de dosyayı İlköğretim Editör ve Editör Yardımcısı aynı zamanda. Yardımcı Editör'ü kapattıktan sonra geldi. (Xcode Sürümü 7.2.1)


0

Xcode'unuzu kapatın, açıksa herhangi bir git istemcisini (kaynak ağacı veya terminal) kapatın ve sonunda projenizi yeniden başlatın.


0

Son zamanlarda XCode 7.3.1'de bununla karşılaştım - benim için RAM kullanımının CleanMyMac3'te% 100'e gittiğini fark ettim. Makinemi yeniden başlattıktan sonra sorun sihirli bir şekilde düzeldi. Ancak dürüst olmak gerekirse, zaten devam ettim ve kabul edilen cevabı denedim, bu yüzden her ihtimale karşı yeniden başlatmadan önce aynısını yapmak isteyeceksiniz :-)


0

Bunu, uygulamayı cihazımdan silerek ve yeniden oluşturarak düzelttim.


0

Hızlı 2.2'de de aynı sorunu yaşadım

Genel bir fonksiyon aşırı yüklenmiş fonksiyonla ilgisi vardı

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
}

Tek yapmam gereken, kullanılmayan aşırı yüklerden birini kaldırmak

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

0

Benim durumum: project.xcworkspace dosyası değildi, Türetilmiş Veri klasörü değildi.

Çok zaman harcadım. Daha kötüsü, hata mesajı yok. Xcode konusunda hiçbir ipucu yok. Kesinlikle kayıp.

Son olarak bu fonksiyon (10'dan fazla parametre ile) sorumludur.

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) {
}

Çıldırmak! Gerçek şu ki, endişe verici (çünkü sözdizimi hatası veya herhangi bir tür yok)


0

XCode 9.3 indeksleme sorunu için - XCode'u kaldırın ve sıfırdan tekrar kurun. Benim için çalışıyor.


1
XCode'un boyutu birkaç KB değil. Birkaç GB'dir.
iphondroid

0

Bu sorun, makinemde takas alanı kalmadığında başıma geldi. Birkaç program ve tarayıcı sekmesi kapatıldı ve yapı, 30 dakika yerinde kaldıktan sonra aniden başarılı oldu. Benim tarafımda türetilmiş veriler, kilitli dosyalar vb. İle ilgisi yok.


0

Listelenen her şeyi denedim, indeksleme donmaya devam ediyor. Bu bana yardımcı oldu: Eğer indekslemeniz donmuşsa ve işlemcinizin% 99'unu yiyen bir veya daha fazla hızlı işleminiz varsa - sadece bu hızlı görevleri sonlandırın, biraz bekleyin ve ilerleme hareket etmelidir. Bitene kadar tekrar edebilir, benim durumumda işlemi 7 kez öldürdüm, ancak sonunda indeksleme tamamlandı!


0

SwiftUI projesinde bu sorunu yaşadım. SwiftUI görünümlerimden birinde yanlış beyan edilmiş bir değişken olduğu ortaya çıktı. Sahiptim:

@EnvironmentObject var roomViewModel

ihtiyacım olan yer:

@EnvironmentObject var roomViewModel: RoomViewModel

Derleyici hatası yoktu, sadece sonsuz indeksleme. Hatayı düzelttikten sonra proje hızla inşa edildi.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.