Ich habe ein Problem mit Xcode, bei dem der Fehler "Source Kit Service Terminated" auftritt und alle Syntaxhervorhebungen und Code-Vervollständigungen in Swift verschwunden sind. Wie kann ich das beheben?
Hier ist ein Beispielbild:
ios
swift
xcode
sourcekitservice
Tony
quelle
quelle
Antworten:
Die Antwort auf meine (Xcode6-Beta7) war einfach, den Ordner Abgeleitete Daten zu löschen.
Preferences > Locations > Derived Data > click the arrow to open in Finder > trash it.
Hoffe das hilft jemandem. Es gibt offensichtlich viele Gründe, warum dieser Absturz auftreten kann.
quelle
Ich glaube, ich habe eine allgemeinere Lösung gefunden. Im Folgenden sind die Schritte aufgeführt, mit denen ich Xcode dazu ermutigt habe, den
SourceKitService Terminated
Fehler nicht zu erzeugen .Die Symptome, die ich hatte:
Error running playground: Failed prepare for communication with playground.
siehe dieses Bild auf Twitter) .OS X
auf wechseln würdeiOS
, würde ich einen weiteren Fehler erhalten (diesen habe ich leider nicht aufgeschrieben).SourceKitService Terminated
Problem in diesem Thread angezeigt .Debugging-Prozess:
IDEPlaygroundDocument: Error encountered running playground
com.apple.CoreSimulator.CoreSimulatorService[3952]: The runtime for the selected device is not installed.
Was ich getan habe, um dieses Problem zu beheben.
Wenn Sie nur ein Problem im Kontext eines Swift-Projekts haben, versuchen Sie dies zuerst alleine. Wenn dies nicht funktioniert, führen Sie alle Schritte weiter unten aus.
Der langwierigere und kompliziertere Prozess. (Die ersten 3 Schritte sind nicht sicher hilfreich, aber ich habe sie gemacht und sie hier aufgezeichnet.)
OS X
zu keine Probleme mehr verursacheniOS
.Analyse
Es scheint, dass das Problem darin besteht, dass Xcode6 den Simulator nicht richtig finden und keine Verbindung zum Simulator herstellen kann. Ich konnte nicht feststellen, warum dies der Fall ist, aber dies hat mir ermöglicht, mich mit Swift weiterzuentwickeln. Dies hat möglicherweise damit zu tun, dass sich die Simulator-Binärdateien scheinbar verschoben haben .
quelle
Sie müssen nur den "ModuleCache" löschen. Dies ist eine Art Cache, der von Xcode für die automatische Vervollständigung verwendet wird.
Kopieren Sie die folgende Zeile und fügen Sie sie in das Terminal ein:
rm -rf ~ / Library / Developer / Xcode / DerivedData / ModuleCache
quelle
SourceKitService stürzt auf meinem System ab, sobald ich tippe
Ich verwende Xcode 6 Beta 6 und es spielt keine Rolle, ob ich es in eine leere Datei eingebe oder zu einer vorhandenen hinzufüge. Sobald die Quelle einen
extension
Block enthält , stürzt sie ab. Dies geschieht auch bei neu erstellten Projekten.Meine "Lösung" besteht darin, eine Erweiterung der Quellen zu vermeiden, an denen ich gerade arbeite. Ich kommentiere das Ende eines Klassenblocks und den Anfang des Erweiterungsblocks aus. Sobald ich meine Arbeit an der Klasse beendet habe, kommentiere ich sie erneut:
quelle
Es begann in meinem Spritekit-Projekt nach dem Einfügen der touchMoved-Funktion. Diese Funktion verwendet erzwungenes Auspacken, was das Problem zu verursachen scheint:
Nachdem die Ausrufezeichen entfernt und damit das erzwungene Entpacken gestoppt wurden, stürzte der SourceKitService nicht mehr ab.
Hoffe das hilft!
quelle
Ich habe in den Entwicklerforen von Apple eine Lösung gefunden (für die ein Login erforderlich ist, daher erkläre ich dies auch hier).
TLDR : Importieren Sie
@protocol
in Ihrem Objective-C keinen Swift-Bridging-Header, der den gleichen Namen wie ein hat@interface
. Beispielsweise verfügt das Facebook SDK sowohl über ein Protokoll als auch über eine Schnittstelle mit dem Namen "FBGraphObject".Hier ist der Forumsbeitrag:
quelle
3.17.1
Verwenden Sie für das Projekt einen anderen Namen als Swift. "Swift" ist reserviert.
quelle
UIView
.Ich hatte dieses Problem alle paar Sekunden in Xcode 6 Beta 3 und es wurde auch in völlig neuen Projekten fortgesetzt. Ich habe das Bereitstellungsziel von 8.0 auf 7.1 geändert und es wurde gestoppt.
quelle
Ist Ihr Projekt benannt
Swift
? Wenn diese Meldung angezeigt wird, ist auch die Erstellung fehlgeschlagen (<unknown>:0: error: module name "Swift" is reserved for the standard library
). Versuchen Sie es mit einem anderen Projektnamen wie zSwiftTest
. Es würde funktionieren.quelle
Um dies zu beheben, haben Sie möglicherweise ein seltsames Problem mit Ihrem Swift-Code. Zum Beispiel mit mehreren Definitionen von IBOutlets, weil Sie gerade kopiert und eingefügt haben. Normalerweise ist es nur ein Syntaxfehler, der nicht behandelt werden konnte.
quelle
Ich fand heraus, dass durch explizite (statische) Eingabe der Variablentypen das Problem für mich gelöst wurde, anstatt sie abzuleiten.
quelle
Beenden Sie Xcode, wenn es geöffnet ist. Dann vom Terminal laufen:
Dadurch wird Xcode auf die Standardeinstellungen zurückgesetzt. Öffnen Sie Xcode und alles sollte wieder funktionieren.
quelle
Für mich (xcode 6.1) war der Grund, dass ich vergessen habe, meine Unterklasse in das Protokoll aufzunehmen.
Zum Beispiel ist das falsch:
und das ist ok:
quelle
Ein Programm, das nur aus diesen beiden Zeilen besteht (möglicherweise falsch in Bezug auf die Swift-Syntax), reicht aus, um hier den Fehler "SourceKitService Terminated" zu verursachen:
Wenn Sie
let
anstelle von verwenden,var
verhält sich der Editor wieder normal. Xcode Version 6.0 (6A215l)quelle
println
Habe heute das gleiche Problem, die Sache war mit , ich habe gerade den alten NSLog-Stil ausprobiert, um einen Wert zu drucken:Die Art und Weise, wie wir Zeichenfolgen schnell zusammenstellen sollten, hat sich vom printf-Stil zum Inline-Stil entwickelt. Jetzt können Sie Ihre Werte wie folgt direkt in die Formatzeichenfolge einbetten:
Für das obige Beispiel lautet die Lösung also:
quelle
Ich hatte das gleiche Problem mit Xcode6 Beta 3 für ein in Beta 2 erstelltes Projekt.
Dies lag an neuen Änderungen in der schnellen Sprache, dh der Syntax der Array-Deklaration.
Überprüfen Sie den betroffenen Code aufgrund von Änderungen in Beta 3.
http://adcdownload.apple.com//Developer_Tools/xcode_6_beta_3_lpw27r/xcode_6_beta_3_release_notes__.pdf
Eines der Beispiele in meinem Fall war:
Ich musste mich ändern:
zu
Schlussfolgerung: Es sieht so aus, als ob ein Fehler im Quellcode vorliegt. Unter bestimmten Umständen wird dieser Fehler von Xcode erzeugt.
Lösung bis der Fehler behoben ist: Manuell auf Fehler prüfen :)
Viel Glück!
quelle
Die Lösung für mich war zufällig den Simulator zu wechseln. Ich habe das iPhone 5S für meinen Simulator verwendet und als ich es auf das iPhone 5 umgestellt habe, hat alles perfekt funktioniert. Hoffentlich wird eine zukünftige Version das Problem insgesamt beheben.
quelle
Ich habe festgestellt, dass das Entfernen abgeleiteter Daten vom Terminal das Problem bis zum nächsten Absturz behebt. : S.
Es befindet sich unter: / Users / {Benutzername} / Library / Developer / Xcode / DerivedData / {Projektname} - {Zufällige Zeichenfolge}
Ich hoffe das hilft.
quelle
Ich glaube, ich habe einen (wie es wahrscheinlich viele gibt) der Gründe herausgefunden, warum dies auftritt.
In meinem Fall habe ich Objective-C-Dateien über den Bridging-Header importiert, der eine der folgenden Bedingungen erfüllt hat:
Das Beheben der App-Ziele in den Objective-C-Dateien ODER das Entfernen des Imports dieser Datei (en) im Bridging-Header insgesamt scheint das Problem zu beheben.
Zu Ihrer Information - Wenn Sie das Ziel von Header-Dateien (.h) festlegen müssen, für die keine Implementierungsdatei (.m) vorhanden ist, können Sie die folgenden einfachen Schritte ausführen: Die Sichtbarkeit der Zielmitgliedschaft in Xcode 4.5 kann nicht geändert werden
quelle
Um hier noch eine mögliche Lösung hinzuzufügen, hatte ich versehentlich eine Klasse var mit demselben Namen wie ihr Typ benannt:
Dies wird SourceKit mit Sicherheit zum Absturz bringen. Dummer Syntaxfehler, aber falls jemand anderes den gleichen Fehler macht.
Edit: auch laut @Portland Runner:
Wenn Sie den Rückgabetyp auf den Funktionsnamen setzen, wird der Fehler angezeigt.
quelle
func foo() ->foo{}
(Fühlen Sie sich frei, es in Ihre Antwort aufzunehmen)Wenn dieser Fehler auftritt, kommentieren Sie einfach den letzten / zuletzt geschriebenen Code aus und warten Sie eine Weile. Die Syntaxhervorhebung sollte wieder angezeigt werden. So arbeite ich um das Problem herum.
quelle
An Apple gemeldet (# 17266321):
Einzelheiten:
Zusammenfassung: Wenn wir versuchen, ein Wörterbuch mit dem Wert als Array zu drucken, wird immer wieder ein Popup mit der Meldung "SourceKit beendet. Editorfunktionalität zeitlich begrenzt" angezeigt. Xcode Friert die Kontexterkennung ein und verliert sie, wodurch der Text geschwärzt wird.
Schritte zum Reproduzieren: 1. Erstellen Sie ein Array als - "var iOSHistoryArray = [" iOS6 "," iOS7 "," iOS8 ",]"
Erstellen Sie ein Wörterbuch als - "var MacOSYosemiteFeatures: Dictionary = [" Gerät ": iOSHistoryArray]".
Drucken Sie das Wörterbuch als - "println (" Wörterbuch mit Array-Wert:% @ \ n ", MacOSYosemiteFeatures)" (<< - Culprit - >>)
In Schritt 3 wird das Problem kommentiert, wodurch der Xcode wieder funktionsfähig wird.
Erwartete Ergebnisse: Xcode sollte normal funktionieren.
Tatsächliche Ergebnisse: Xcode funktioniert nicht mehr, verliert die Kontexterkennung (alle Schriftarten gehen verloren und der gesamte Text wird schwarz), der gesamte Xcode wird inaktiv.
Version: Version 6.0 (6A215l)
quelle
Versuch es:
quelle
Problem:
Mein Fall: Installiertes Beta 3, nur OSX-Projekt, eine Datei hat festgestellt, dass der Fehler "Operator mit halb geschlossenem Bereich von .. auf .. <geändert wurde". Das Popup wird angezeigt und die Code-Hervorhebung schlägt fehl.
Lösung:
quelle
Gehen Sie in xcode zu Ihrer Menüleiste >> Fenster >> Geräte (Umschalt + cmd + 2). Ein neues Fenster wird geöffnet. Fügen Sie unten links einen neuen Simulator hinzu, insbesondere einen, der unter iOS 8.0 ausgeführt wird, zur vorhandenen Listenbearbeitung : Möglicherweise müssen Sie xcode neu starten
Aktualisierung: http://www.reddit.com/r/swift/comments/2bznfo/error_running_playground_unable_to_find_suitable/
quelle
In meinem Fall hatte ich fehlende Dateien in den überbrückten Header importiert. Nachdem ich falsche Importe gelöscht habe, ist die Fehlerbenachrichtigung verschwunden.
quelle
Ich hatte den gleichen Fehler mit dem verschachtelten Objective-C ++ - Projekt, das jetzt Framework mit Swift-Code enthält. Um dieses Problem zu beheben, musste ich das Framework explizit erstellen. Sobald ich das getan habe, ist das Problem weg und kommt nicht zurück;)
quelle
Immer noch mit xcode 6 Version 6.0 (6A313)
Stürzt ab
ps: brandneuer mac mini, kein vorheriger xcode installiert, nichts exotisches. Nur ein Beta-Produkt, nehme ich an.
quelle
Xcode 6.1 Beta 3:
Sobald Sie einen nicht privaten Typalias (z. B.
typealias Foo = Int
) in einer Swift-Datei definieren und den Buchstabenc
in eine andere Datei eingeben, stürzt der SourceKitService ab.Die Lösung besteht entweder darin, auf die Verwendung von Typ-Aliasen zu verzichten, auf die nächste Beta-Version zu warten oder Ihre Typ-Aliase in Klassendefinitionen zu verpacken:
und benutze es so:
quelle
Das Ändern des Bereitstellungsziels auf iOS 8.0 hat bei mir funktioniert. Ich weiß, dass jemand gesagt hat, dass das Verschieben auf <= 7.1 funktioniert hat, aber dieses Problem scheint aus mehreren Quellen zu stammen, sodass diese Alternative möglicherweise funktioniert.
quelle