it-swarm.com.de

Xcode bleibt beim Indexieren hängen

Ein Projekt, an dem ich seit 2 Monaten arbeite, hörte auf zu arbeiten, weil Xcode auf "Indexing" steckte. Ich kann das Projekt nicht mehr erstellen. Wenn ich versuche zu bauen, friert Xcode ein und ich muss das Beenden erzwingen. Dies passiert nur bei diesem Projekt.

Ich habe versucht, alle abgeleiteten Daten zu säubern, half aber nicht.

Ich verwende Xcode 4.5.2.

Irgendwelche Ideen?

99
tomDev
  1. Öffnen Sie Ihren Projektordner.
  2. Suchen Sie die Datei ProjectName.xcodeproj.
  3. Klicken Sie mit der rechten Maustaste auf Kopieren und Einfügen an einem sicheren Ort.
  4. Klicken Sie mit der rechten Maustaste auf Paketinhalt anzeigen.
  5. Suchen Sie die Datei project.xcworkspace und löschen Sie diese Datei.
  6. Eröffnen Sie Ihr Projekt wieder und säubern Sie und bauen Sie neu auf.

Wenn Ihr Problem nicht gelöst ist, ersetzen Sie die Datei durch Ihre Sicherungsdatei.

143
Pratik Mistry
  1. Schließen Sie dieses Projekt aus Xcode
  2. Öffnen Sie Xcode Organizer, und suchen Sie das problematische Projekt
  3. Löschen Sie den Ordner Abgeleitete Daten im Organizer
  4. Xcode schließen/erneut öffnen

Die Ableitung von abgeleiteten Daten ist das erste, was in allen Fällen von Fehlverhalten von Xcode versucht wird

61

Ich hatte genau dieses Problem, es wurde durch ein 20-Element-Array-Literal verursacht. Musste zu einer anderen Syntax wechseln. Ziemlich dumm.

20
Jehan
  1. Schließen Sie alle geöffneten Xcodes
  2. rm -rf ~/Library/Developer/Xcode/DerivedData
  3. Klicken Sie mit der rechten Maustaste auf Ihren PROJECT_NAME.xcworkspace, wählen Sie "show content" und löschen Sie den Ordner "xcuserdata"
8
kjian

Ich hatte ein ähnliches Problem und stellte fest, dass ich aus Versehen eine Klasse als eigene Unterklasse definierte. Ich habe keine Warnung oder Fehler erhalten, aber das Kompilieren blieb hängen.

class mainClass : mainClass
{
    ...
}
8
Philipp Otto

Wenn Sie Xcode 6 verwenden, heißt es 

Warten auf machen

Möglicherweise läuft bereits eine Instanz von make. Beenden Sie den Prozess und die Indexierung wird fortgesetzt. Dumm, aber für mich gearbeitet.

8
oarfish

Halten Sie alt> Product> Clean Build Folder

3
rogger2016

Bei mir hat es geklappt, Xcode komplett zu schließen und dann das Projekt neu zu starten.

Dies ist nicht die Lösung für die ursprüngliche Frage, glaube ich nicht, aber es ist eine einfachere Sache, die Sie ausprobieren müssen, bevor Sie Dateien und Ordner usw. löschen. Dank an diese Antwort für die Idee.

3
Suragch

Ich hatte ein ähnliches Problem, bei dem Xcode viel Zeit mit der Indizierung verbrachte und sich beim Erstellen des Projekts häufig aufhielt. Zu diesem Zeitpunkt musste ich Xcode zwangsweise beenden und neu starten. Es war sehr nervig.

Dann bemerkte ich eine Warnung im Projekt, dass ich self als Delegierten falsch zugewiesen habe. Sicher genug, es gab ein fehlendes Protokoll in der Klassendeklaration. Beachten Sie, dass es im Beispielcode des OP eine ähnliche Zuordnung gibt (obwohl aus dem Beispiel nicht ersichtlich ist, ob das richtige Protokoll deklariert ist):

leaderboardController.leaderboardDelegate == self;

Nachdem diese Warnung behoben wurde (indem das implementierte Protokoll korrekt deklariert wurde), hat Xcode aufgehört, sich schlecht zu verhalten. Außerdem sollte ich beachten, dass das Projekt korrekt ausgeführt wurde, da die Protokollmethoden were implementiert wurden. Es war nur so, dass Xcode nicht bestätigen konnte, dass das Protokoll tatsächlich von der Klasse implementiert werden sollte.

2
Peter Gluck

Eine andere Sache, wenn Sie versuchen, Indexierungsprobleme zu lösen, und Sie sind so weit unten auf der Seite!

Fügen Sie dieses Flag Ihren Build-Einstellungen hinzu.

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

build settings flag

Dies führt zu einer Warnung, wenn der Compiler lange dauert, um einen komplexen Ausdruck abzuleiten.

warning

Dies kann zu einem Build-Fehler führen, der nach dem Auffinden der langsamen Ausdrücke und dem Entfernen des Build-Flags behoben wird.

2
greencardigan

Es handelt sich um einen Xcode-Fehler (Xcode 8.2.1), und ich habe Apple berichtet, dass dies passiert, wenn Sie ein großes Wörterbuchliteral oder ein verschachteltes Wörterbuchliteral haben. Sie müssen Ihr Wörterbuch in kleinere Teile aufteilen und mit der Anfügemethode hinzufügen, bis Apple den Fehler behoben hat.

2
Pink Panther
  • Trennen Sie zuerst die Verbindung zum Netzwerk. Das kabelgebundene Netzwerk und das drahtlose Netzwerk sollten sich ausschalten.
  • Zweitens beenden Sie den com.Apple.dt.SourceKitService-Prozess. Dann würde XCode erneut beginnen zu indexieren, anstatt zu stecken.

 enter image description here

2
ooOlly

In meinem Fall half das Löschen des abgeleiteten Datenverzeichnisses nicht. Anscheinend hatte ich eine Datei durch einen anderen Prozess gesperrt, denn nachdem ein paar Terminalfenster und Emacs geschlossen und ein reaktiver Packagerprozess beendet wurde, löste sich alles.

1
chetstone

Hatte ein ähnliches Problem in Xcode 6.4. Der Fortschrittsbalken zeigte an, dass "Indexierung" "Pausiert" war. Es wurde versucht, project.xcworkspace zu löschen und abgeleitete Daten wie oben beschrieben zu löschen. Schien nicht zu helfen Da in den obigen Beiträgen auch darauf hingewiesen wird, dass Warnungen behoben werden sollen, und da ich dieses riesige Projekt mit 180 Warnungen geerbt hatte, sagte ich mir: "Was zum Teufel sieht das aus wie ein guter Tag, um Warnungen zu reparieren". Als ich eine halbe Stunde später Warnungen korrigierte, bemerkte ich, dass der Fortschrittsbalken "Indexierung" von 10% auf etwa 20% gestiegen war. Eine Stunde später war es bei 50%, dann noch eine Stunde bei 80%, dann war es nach einer weiteren halben Stunde erledigt! Fazit: Fügen Sie den obigen Vorschlägen "ein langes Mittagessen oder ein Nickerchen" hinzu.

1
Jerry Krinock

Das gleiche Problem trat bei Xcode 7.0 Beta auf. In meinem Fall unterschieden sich die Werte für "Provisioning Profile" und "Product Bundle Identifier" von "Build Settings" zwischen PROJECT und TARGETS . Die gleichen Werte habe ich auch für ZIELE von "appName" und "appNameTest" verwendet. Dann wurde das Projekt geschlossen und wieder geöffnet. Dies löste meinen Fall.

1
manispin

Dieses Problem ist in einigen Projekten mit Xcode 9.3.1 aufgetreten. In meinem Fall liegt das Problem an Swift-Code, den Xcode aus irgendeinem Grund nicht mag. Dieses Problem ist schwer zu lösen, da es schwierig ist, die Datei zu finden, die das Problem verursacht.

Wenn ich dieses Problem habe, entferne ich einige Dateien aus dem Xcode-Projekt (Referenzen werden entfernt) und ich versuche zu testen, ob die Indizierung funktioniert. Mein Prozess dazu

  1. Entfernen Sie einige Dateien
  2. Schließen Sie Xcode
  3. Öffnen Sie Xcode
  4. Wenn die Indizierung abgeschlossen ist, versuchen Sie, eine Methode umzubenennen, falls die Dateien, die Sie entfernt haben, wahrscheinlich etwas seltsames für Xcode sind. 

In meinem Fall hatte ich eine Klassendefinition mit einer reaktiven Erweiterung in derselben Datei. Aus irgendeinem Grund mag Xcode sie nicht. Ich habe die reaktive Erweiterung in eine andere Datei verschoben und nun funktioniert die Indizierung einwandfrei.

1
El Belga

Das ist mir passiert. Wenn Sie Kokosapoden verwenden, tun Sie dies:

  1. Löschen Sie project.xcworkspace
  2. Installieren Sie die Pods mithilfe von "Pod Install" auf dem Terminal erneut
  3. Es wird ein neuer project.xcworkspace erstellt
  4. Öffnen Sie den neuen project.xcworkspace -> Clean -> Build
1
meow2x

Für mich habe ich einen dummen Fehler gemacht. Ich schreibe eine Klasse wie diese:

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

Eine Klasse erbt sich selbst und verursacht das Einfrieren. Es gibt keinen Hinweis von Xcode.

1
Victor Choy

Konfrontiert dies kürzlich mit XCode 7.3.1 - für mich fiel mir auf, dass RAM zu CleanMyMac3 zu 100% verwendet wird. Das Problem wurde magisch behoben, nachdem ich meinen Rechner neu gestartet hatte. Bei aller Fairness war ich jedoch schon vorgefahren und habe die akzeptierte Antwort ausprobiert, so dass Sie dasselbe tun sollten, bevor Sie einen Neustart durchführen, nur für den Fall :-)

0
Angad

Ich habe alle aufgelisteten Dinge ausprobiert, die Indizierung friert ständig ein. Dies hat mir geholfen: Wenn Ihre Indizierung eingefroren ist und Sie einen oder mehrere Swift Prozesse haben, die 99% Ihrer CPU verbrauchen - töten Sie einfach diese Swift Aufgabe (n), warten Sie ein bisschen, und der Fortschritt sollte sich bewegen. Es kann sich wiederholen, bis es fertig ist. In meinem Fall habe ich den Vorgang sieben Mal abgebrochen, aber am Ende wurde die Indizierung abgeschlossen!

0
David Kyslenko

Ich hatte das gleiche Problem in Swift 2.2 

Es hatte mit einer generischen Funktion zu tun, die überlastete Funktion hatte

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
}

ich musste nur eine der nicht verwendeten Überlastungen entfernen

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

Hatte dieses Problem bei einem SwiftUI-Projekt. Es stellte sich heraus, dass eine meiner SwiftUI-Ansichten eine falsch deklarierte Variable hatte. Ich hatte:

@EnvironmentObject var roomViewModel

wo ich brauchte:

@EnvironmentObject var roomViewModel: RoomViewModel

Es gab keinen Compilerfehler, nur eine endlose Indizierung. Nachdem ich den Fehler behoben hatte, wurde das Projekt schnell erstellt.

0

Mein Fall: Es war nicht die Datei project.xcworkspace, nicht der Ordner Abgeleitete Daten.

Ich habe viel Zeit verschwendet. Schlimmer noch, keine Fehlermeldung. Kein Hinweis seitens Xcode. Absolut verloren.

Schließlich ist diese Funktion (mit mehr als 10 Parametern) zuständig.

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

Verrückt werden! Die Wahrheit ist, dass es besorgniserregend ist (weil es keinen Syntaxfehler oder irgendeinen Typ gibt)

0
Markus

Ich habe das Problem behoben, indem ich die App einfach von meinem Gerät löschte und neu aufbaute. 

0
Robert Sandru

Nichts hat für mich funktioniert, mein Projekt ist zu groß (Zusammenführungsziel c, c++, Swift und Java Dateien mit j2obj). Ich habe die Xcode-Indizierung deaktiviert und seit Monaten ohne Code-Abschluss gearbeitet (und das ist ein Schmerz). Aber endlich habe ich einen Workaround gefunden. Die Idee ist, den Code weiterhin mit Xcode zu indizieren, die CPU-Auslastung jedoch mit einem externen Tool wie cputhrottle zu begrenzen. 

Sie müssen also zuerst eine Steuertaste im Terminal installieren

brühen Sie die Cputhrottle ein

Dann begrenzen Sie den Xcode-Indizierungsprozess wie folgt (20 = 20%)

Sudo cputhrottle $ (pgrep -f com.Apple.dt.SKAgent) 20

Ich habe meine "Lösung" hier mit Modusdetails dargestellt: Wie kann ich verhindern, dass Xcode bei der Indizierung großer Projekte 100% der CPU verwendet?

0
jptsetung

Bei Indexierungsproblemen mit XCode 9.3 - Deinstallieren Sie den XCode und installieren Sie ihn erneut von Null. Funktioniert bei mir.

0
Maximo Lucosi

Stoppen Sie auch, App auszuführen. Wenn Sie eine andere Anwendung mit xcode ausführen, stoppen Sie diese zuerst und die Indizierung sollte fortgesetzt werden. 

0
nferocious76

Ich stand auch vor dem Problem. Mir ist aufgefallen, dass ich dasselbe Projekt zweimal geöffnet habe.

Also QuitXCode> Öffnen Sie Ihr Projekt und stellen Sie sicher, dass nur eine Instanz geöffnet ist> Clean> CleanBuild Folder> Build.

Es sollte funktionieren

0
Shahid

Dieses Problem ist mir passiert, als sich mein Computer außerhalb des Swap-Bereichs befand. Mehrere Programme und Browser-Tabs wurden geschlossen, und der Build war nach 30 Minuten, in denen er festgehalten wurde, plötzlich erfolgreich. Nichts mit abgeleiteten Daten, gesperrten Dateien usw. auf meiner Seite.

0
Jacob Torres

Für mich war die Ursache, dass ich die Datei same im Primary Editor und Assistant Editor gleichzeitig geöffnet habe. Nachdem ich Assistant Editor geschlossen hatte, kam es durch. (Xcode Version 7.2.1)

0
wye

Schließen Sie Ihren Xcode, schließen Sie einen beliebigen git-Client (Quellbaum oder Terminal), wenn er geöffnet ist, und starten Sie Ihr Projekt schließlich neu.

0
Mohit Anand