Vielleicht erlebe ich nur so ein nerviges "Feature":
Nach dem Upgrade von Xcode 6.0.1 auf Xcode 6.1 haben sich die Dinge geändert. Xcode 6.1 indiziert für immer das Projekt oder kompiliert Quelldateien. Das Projekt ist nicht sehr groß. Es enthält nur eine Reihe von Swift-Dateien und AWS SDK 2.0-Cocoapods im Arbeitsbereich. Ich denke nicht, dass es das Ganze daran hindern sollte, reibungslos zu indizieren und zu kompilieren. Ich habe es mit einigen aws-sdk-ios-Beispielen versucht, nur um zu sehen, wie Xcode 6.1 auf ihnen funktioniert, und es endete damit, dass ich für immer darauf wartete.
Welche Lösungen habe ich bisher ausprobiert:
- Löschen von "Abgeleiteten Daten" im Organizer und erneutes Öffnen und Arbeitsbereich. (nicht zu beheben)
- "Paketinhalt anzeigen" in der .xcodeproj-Datei und Löschen von .xcworkspace wie in ( Xcode 4 - langsame Leistung )
Keiner von ihnen hat leider funktioniert.
PS Vielleicht sollte ich versuchen, das Projekt neu zu erstellen? Meine Computereinstellungen: MacBook Pro (Retina, 13 Zoll, Mitte 2014), Speicher 8 GB DDR3 mit 1600 MHz, mit Yosemite. (Ich denke, das ist genug, um dieses kleine Projekt auszuführen.)
Antworten:
Ich habe viele der oben genannten Vorschläge ausprobiert, darunter das Aufteilen von Dateien, die Installation von Xcode 6.2 Beta und das Unterbrechen von Anweisungen zur Verkettung von Zeichenfolgen. Was es schließlich für mich getan hat, war die Aufteilung einer Reihe von Wörterbuch-Literaldeklarationen, die ich für Testdaten verwendete, in mehrere
.append
Anweisungen.Für das, was es wert ist, verursacht der sechste Eintrag in diesem Array das Problem für mich. fünf funktioniert gut.
quelle
init()
schrittweise Initialisierung funktioniert einwandfrei. Erwähnenswert ist, dass ich die.xcworkspace
Datei auch löschen musste.Die einzige funktionierende Lösung für mich besteht darin, alle abgeleiteten Daten zu löschen (nicht nur für das aktuelle Projekt, sondern nur den gesamten Ordner zu bereinigen) und dann Xcode neu zu starten.
Öffnen Sie Datei / Einstellungen in Xcode
Klicken Sie ganz rechts im Popup-Fenster auf Standorte
Klicken Sie auf das kleine Pfeilsymbol neben "/Users/Mac/Library/Developer/Xcode/DerivedData"....it. Sie gelangen zu einem Xcode-Ordner, der einen DerivedData-Ordner enthält (der alle abgeleiteten Daten Ihrer vorherigen Projekte enthält .)
LÖSCHEN Sie den Ordner DerivedData
quelle
Verwenden Sie CocoaPods? Ich bin heute früher auf dasselbe Problem gestoßen. (Verwenden von xCode 6.1.1)
Um das Problem zu beheben, habe ich alles in
~/Library/Developer/Xcode/DerivedData
demPods
Ordner in meinem Projektverzeichnis und gelöscht<project>.xcworkspace
.Ich öffnete dann das Terminal, navigierte zu meinem Projektverzeichnis und lief
pod install
erneut.quelle
Hatte heute das gleiche Problem. Xcode 6.3.2, mittelgroßes Swift-Projekt. Irgendwann begann die Indizierung und die Indizierung wurde nie beendet. Der Code, der dies verursachte, war ein Wörterbuch vom Typ [String: [String]], also ein String-Key-Diktat mit String-Arrays als Werten. Ich hatte zwei davon mit Schlüsseln von A bis Z und jeder dieser 26 Einträge enthält ein String-Array mit 5 bis 10 Strings.
Das Löschen abgeleiteter Daten hat nicht geholfen. Nur das Auskommentieren dieser Diktate brachte es wieder zum Laufen.
Ehrlich gesagt ist das lächerlich! Apple muss Xcode reparieren! Beim Kompilieren von Swift-Projekten ist es bereits furchtbar langsam, aber solche Fehler sind ein Showstopper. Ich kann meinen Job damit nicht richtig machen!
quelle
Für diejenigen, die immer noch dieses Problem haben, ist dies eine Problemumgehung, die mir Spaß macht und verhindert, dass Sie die Objekte einzeln eingeben müssen:
quelle
Für mich habe ich all das ohne Erfolg versucht; Aber alles, was ich tun musste, war, den abgeleiteten Datenordner zu löschen, dann ein anderes zufälliges Projekt zu öffnen, darauf zu warten, dass es indiziert wird, und jetzt funktioniert mein ursprüngliches (fehlerhaftes) Projekt!
Tun Sie der Entwicklungswelt einen Gefallen und machen Sie Ihre schnellen Compiler zu Open Source - damit wir nicht alle durch Ihre Inkompetenz vereitelt werden.
quelle
Ich verwende Xcode Version 7.3 (7D175)
Ich glaube, ich hätte ein zugrunde liegendes Problem herausgefunden. Es gab zwei Fälle, in denen ich in der Indexierungsphase feststeckte:
Ich habe einen Abschluss erstellt, den ich einer Variablen zugewiesen habe, und die Typensignatur weggelassen. Ich denke, xcode hatte Probleme mit diesem Typinferenzschritt. Wenn ich mich richtig erinnere, war eines der Argumente ein CGPoint, das einen überladenen Konstruktor hat. Meine Hypothese ist, dass es zu viele Möglichkeiten gibt, was mein Abschluss als Argumente akzeptieren könnte.
Ich habe eine Factory-Methode so überarbeitet, dass anstelle von Instanzen eines Typs Instanzen vieler Typen mit einer gemeinsamen Basisklasse zurückgegeben werden können. Es scheint, dass ich das resultierende Objekt überall dort, wo ich die Factory-Methode verwendet habe, in einen bestimmten Typ umwandeln musste (entweder mit as? Oder indem ich es einer Variablen zuwies, die einen bestimmten Typ akzeptiert). Wieder scheint der Schritt der Typinferenz unterbrochen zu sein.
Es scheint, dass dies auch bei den von früheren Personen erwähnten Wörterbuchdeklarationen der Fall ist. Ich habe einen Fehlerbericht bei Apple eingereicht.
quelle
Ich habe das gleiche Problem nach dem Upgrade auf 6.1 festgestellt. Xcode würde beim Kompilieren oder Indizieren stecken bleiben, ohne eine bestimmte Fehlermeldung zu generieren.
Das Problem wurde schließlich behoben, indem einige der längeren Ausdrücke in den schnellen Dateien in mehrere kürzere Ausdrücke zerlegt wurden. Ein Teil meines Programms kombiniert viele verschiedene Zeichenfolgenvariablen, um eine längere Zeichenfolge zu bilden. Versuche, sie in einem einzigen Ausdruck zu kombinieren und den Additionszuweisungsoperator zu verwenden, schlugen fehl. Ich konnte es zum Laufen bringen, indem ich etwas Ähnliches wie das Folgende tat (vereinfacht):
Ich kam auf diese Idee, weil ich in der vorherigen Xcode-Version mehrmals den folgenden Fehler erhalten habe: "Der Ausdruck war zu komplex, um in angemessener Zeit gelöst zu werden. Überlegen Sie, den Ausdruck in verschiedene Unterausdrücke aufzuteilen."
Hoffe das hilft
quelle
Ich habe mit dem gleichen Problem zu kämpfen. Ich habe die beiden genannten Lösungen (Löschen abgeleiteter Daten und Löschen von .xcworkspace) ohne Erfolg ausprobiert. Ich habe auch versucht, den größten Teil des Codes langsam Stück für Stück zu kommentieren und die Dateien zu entfernen, bis fast nichts mehr übrig war und die Indizierung immer noch stecken blieb.
Ich habe eine Lösung gefunden, die für mich funktioniert hat. Ich habe das Projekt mit einer älteren Xcode-Version 6.1 (6A1030) geöffnet, die keine Probleme bei der Indizierung hatte, und bin dann auf die neueste Xcode-Version 6.1 (6A1052d) zurückgekehrt, die ich zuvor verwendet habe und die Indizierung war behoben und funktionierte weiterhin gut.
Mein Fazit ist, dass dies ein Fehler mit Xcode Version 6.1 (6A1052d) ist, von dem ich hoffe, dass er sich mit zukünftigen Versionen verbessern wird.
Das Problem tritt immer wieder auf. Jedes Mal funktioniert das gleiche Update. Ich denke, eine andere Lösung wäre, einfach bei der älteren Xcode-Version 6.1 (6A1030) zu bleiben, aber es funktioniert nicht mit Geräten, auf denen iOS 8.1 ausgeführt wird, und es gibt nicht die neuesten Fehlerkorrekturen.
quelle
Ich habe dies mit Xcode 8.3.3 versucht. Hier sind meine Ergebnisse:
Sie können einwandfreien Swift-Code schreiben, bei dem die Indizierung hängen bleibt.
Sobald die Indizierung hängt, hängt sie. Das Zurücksetzen des Swift-Codes auf etwas, das nicht dazu führen würde, dass die Indizierung hängen bleibt, hilft nicht, es bleibt jedoch hängen.
Das Schließen des Projekts und das erneute Öffnen helfen in dieser Situation nicht weiter.
Das Beenden und Neustarten von Xcode hilft. Die Indizierung hängt nicht mehr (wenn Sie den Code wieder in etwas geändert haben, das ihn nicht hängen lässt).
Ein Neustart Ihres Mac hilft ebenfalls, obwohl dies nicht erforderlich ist.
Das Hängen wird durch feinen Swift-Code verursacht. Ein Beispiel, wie ich ausgesehen hatte
Die Indizierung würde hängen bleiben. Ich habe die meisten "??" Zeilen und es war in Ordnung (nach dem Beenden und Neustarten von Xcode). Eine Zeile nach der anderen nicht kommentiert. Bei einigen Zeilen war es in Ordnung, und wenn Sie die nächste Zeile auskommentieren, bleibt sie hängen.
Das einzige, was anscheinend hilft, ist das Ändern Ihres Codes.
quelle
Auf meinem Xcode bestand die Lösung darin, alle redundanten Fenster zu schließen. Aus irgendeinem Grund machen viele geöffnete Fenster Xcode sehr langsam.
quelle
Schließlich habe ich das Problem "gelöst", obwohl es nur eine Problemumgehung ist.
Ich habe ein anderes Projekt erstellt und Dateien einzeln hinzugefügt. Dann entdeckte ich eine "sehr lange" Datei viewcontroller.swift. Dann habe ich seine Codes in Module aufgeteilt und diese wiederholt verwendeten Codes in Funktionen in einer anderen schnellen Datei umgewandelt. Außerdem nahm ich online den Vorschlag an, lange Ausdrücke in kürzere zu unterteilen. Dann funktioniert die Indizierung und das Kompilieren.
Also für jetzt habe ich es "gelöst".
ABER ich denke nicht, dass das richtig ist. Xcode IDE sollte mehr als in der Lage sein, meine "sehr lange" schnelle Datei mit nur 1500 Zeilen zu verarbeiten. Ich glaube, dies ist definitiv ein Fehler (der schon lange besteht), obwohl Xcode 6.1 bereits ein Upgrade von Xcode 6.0.1 ist.
quelle
Für mich habe ich die Xcode-App gelöscht und erneut heruntergeladen und installiert. Damit war das Problem zumindest jetzt gelöst.
quelle
Xcode-Indizierung in der Regel für Ihren Code für Vorschläge und automatische Vervollständigung unter anderem, z. B. Hilfe bei Storyboards und umgekehrt. Um Ihr xcode-Projekt zu beschleunigen, können Sie es über das Terminal aus- und wieder einschalten
Deaktivieren Sie die Indizierungsstandards.
Schreiben Sie com.apple.dt.XCode IDEIndexDisable 1 Aktivieren Sie die Indizierungsstandards. Schreiben Sie com.apple.dt.XCode IDEIndexDisable 0
Aber besserer Ansatz, um einen schnellen Mac mit gutem RAM zu verwenden.
quelle
Wenn es Ihnen nichts ausmacht, zu 6.0.1 zurückzukehren, bis sie es herausgefunden haben, hat das für mich funktioniert. Ich hatte das gleiche Problem mit 6.1 und 6.1.1. Jetzt bin ich gut. Ich werde 6.2 versuchen, wenn es herauskommt.
Frühere Versionen der Apple-Software finden Sie auf der offiziellen Entwickler-Website hier: https://developer.apple.com/downloads/index.action
Wenn Sie dies tun, müssen Sie zuerst Ihre aktuelle Kopie von Xcode löschen.
quelle
Ich verwende Xcode 6.1.1 mit schnellen Dateien auf genau demselben MacBook Pro.
Als ich einem 3D-String-Array immer wieder Zeilen hinzufügte, wurde Xcode plötzlich unbrauchbar und jetzt kann ich nichts mehr tun.
Ich werde versuchen, auf 6.1 zurückzukehren, und hoffentlich wird das Problem behoben sein.
quelle
Ich sehe dies in Xcode 6.3.2. Ich hatte wirklich gehofft, dass ein Jahr nach der Veröffentlichung der Compiler funktionieren würde, aber leider.
Wenn keine der oben genannten Lösungen funktioniert, überprüfen Sie Ihren Code auf syntaktische Fehler. Während des Refactorings habe ich einen Abschluss extrahiert, aber vergessen, die Parameter zu qualifizieren:
Wenn ich durch die Arbeit in Swift etwas gelernt habe, muss ich inkrementell arbeiten, um zu vermeiden, dass ich zu viel zurückverfolgen muss, um den fehlerhaften Code zu finden.
quelle
quelle
Ich benutze Xcode 8.2 und endete auch mit diesem Problem. Es begann, nachdem ich eine komplexe Tupelvariable definiert hatte - ein Array von Tupeln mit einem Subarray von Tupeln. Die Dinge werden sehr langsam, wenn das Subarray von Tupel eine Eigenschaft hat, die programmgesteuert berechnet wird.
Wie einige andere Antworten feststellten, dauert die Indizierung ewig, und ich glaube, sie versucht, auf die Typen der Variablen zu schließen.
Ich habe das Problem zuerst gelöst, indem ich die Variable mit den enthaltenen Typen klar definiert habe. Wenn ich die Eigenschaft aktualisiere, berechne ich sie zuerst und weise sie dann dem Tupel zu, anstatt sie bei der Definition der Variablen zu berechnen.
Hier ist ein Beispielcode.
Die Quintessenz ist, dass Xcode keine komplexen Strukturen ableiten darf.
quelle
Ich hatte das gleiche Problem. Mein Xcode ist 8.2.1. In meinem Fall wollte ich jedoch ein Array von Wörterbüchern mit 33 Schlüssel-Wert-Paaren erstellen. Ich habe Folgendes getan, was bei der Indizierung stecken geblieben ist:
Folgendes hat bei mir funktioniert:
quelle
Ich hatte auch dieses Problem und löste es, indem ich Ausdrücke mit dem Operator "+" entfernte / änderte.
Ich habe das geändert:
Dazu:
Es hat das Problem gelöst.
Meine Maschine ist Ende 2013 ein maximaler MBP
quelle
Möglicherweise möchten Sie auf Xcode 6.1.1 aktualisieren
Es wurde offiziell veröffentlicht und für uns das Indexierungsproblem gelöst. In der Update-Beschreibung heißt es, dass sie Stabilitätskorrekturen angewendet haben, sodass es sehr wahrscheinlich ist, dass sie sich stabiler verhalten.
quelle
Die Xcode 6.2 Beta hat das Problem für mich behoben. Nicht blitzschnell, aber zumindest nicht für immer indiziert. Die Beta wird nicht über Ihre reguläre Xcode-Installation hinaus installiert. Wenn Ihnen die Beta nicht gefällt, können Sie sie einfach löschen.
Verschiedene Xcode-Downloads einschließlich der Beta>
quelle
Ich hatte Ausdrücke wie:
ebenfalls
Es geht also darum, Ihre Datei so umzuschreiben, dass sie nur Ausdrücke auf Kindergartenebene enthält, und das Indizierungsproblem wird behoben.
quelle
Xcode 11.5 (11E608c) und immer noch die gleichen Probleme, 6 Jahre nach der ursprünglichen Frage. Ich wünschte, ich könnte Apfel in dieser Frage "markieren", damit sie dieses Durcheinander sehen können. Dies ist ein großes Projekt (> 1000 Dateien) und ich war unter der Uhr. Als ich den Einfrierindex bemerkte, wurde ich mit mehr als 100 Dateien geändert und kann nicht zurück.
Ich habe alles versucht:
Das Problem war eine Array-Erstellung:
Was mir geholfen hat, die fehlerhafte schnelle Datei zu entdecken, war, dass ich die folgenden Schritte ausgeführt habe, als die Indizierung von xcode eingefroren wurde
SOURCEKIT_LOGGING=3 /Applications/Xcode.app/Contents/MacOS/Xcode &> ~/Documents/xcode.log
, mit dem Xcode mit Level 3 ausführlich gestartet und die Protokollierung in der Protokolldatei gestartet wird.Es ist keine vollständige Lösung, aber es ist hilfreich, einen Drilldown durchzuführen und zu wissen, wo Sie suchen müssen.
quelle