Mam problem z Xcode, w którym pojawia się błąd „Zakończył się serwis źródłowy”, a wszystkie podświetlanie składni i uzupełnianie kodu znikają w Swift. Jak mogę to naprawić?
Oto przykładowy obraz:
ios
swift
xcode
sourcekitservice
Tony
źródło
źródło
Odpowiedzi:
Odpowiedzią dla mojej (Xcode6-Beta7) było po prostu usunięcie folderu danych pochodnych.
Preferences > Locations > Derived Data > click the arrow to open in Finder > trash it.
Mam nadzieję, że to komuś pomoże. Jest oczywiście wiele powodów, dla których ta awaria może wystąpić.
źródło
Myślę, że mogłem znaleźć rozwiązanie bardziej ogólnego przeznaczenia. Poniżej znajdują się kroki, które zachęciłem Xcode, aby nie generował
SourceKitService Terminated
błędu.Objawy, które miałem:
Error running playground: Failed prepare for communication with playground.
zobacz to zdjęcie na Twitterze .OS X
naiOS
, otrzymywałem kolejny błąd (niestety tego nie zapisałem).SourceKitService Terminated
problem w tym wątku.Proces debugowania:
IDEPlaygroundDocument: Error encountered running playground
com.apple.CoreSimulator.CoreSimulatorService[3952]: The runtime for the selected device is not installed.
Co zrobiłem, aby rozwiązać ten problem.
Jeśli masz problem tylko w kontekście projektu Swift, spróbuj najpierw sam. Jeśli to nie zadziała, spróbuj wykonać wszystkie poniższe kroki.
Bardziej długi i zaangażowany proces. (Pierwsze 3 kroki nie są na pewno pomocne, ale zrobiłem je, więc nagraj je tutaj)
OS X
celuiOS
.Analiza
Wygląda na to, że problem polega na tym, że Xcode6 nie jest w stanie poprawnie znaleźć i połączyć się z symulatorem. Nie udało mi się ustalić, dlaczego tak jest, ale pozwoliło mi to kontynuować rozwój w Swift. Może to mieć związek z faktem, że pliki binarne symulatora zostały przeniesione .
źródło
Wystarczy usunąć „ModuleCache”, jest to rodzaj pamięci podręcznej używanej przez Xcode do autouzupełniania.
Skopiuj i wklej następujący wiersz w terminalu:
rm -rf ~ / Library / Developer / Xcode / DerivedData / ModuleCache
źródło
SourceKitService ulega awarii w moim systemie, gdy tylko piszę
Używam Xcode 6 beta 6 i nie ma znaczenia, czy wpisuję go w pustym pliku, czy dodam do istniejącego. Gdy tylko źródło zawiera jeden
extension
blok, nastąpi awaria. Dzieje się tak nawet w przypadku nowo tworzonych projektów.Moim „rozwiązaniem” jest unikanie rozszerzenia w źródłach, nad którymi obecnie pracuję. Komentuję koniec bloku klasy i początek bloku rozszerzenia. Zaraz po zakończeniu pracy nad klasą komentuję je ponownie:
źródło
Zaczęło się dziać w moim projekcie spritekit po wstawieniu funkcji touchesMoved. Ta funkcja używa wymuszonego rozpakowywania, co wydaje się powodować problem:
Po usunięciu wykrzykników i zatrzymaniu wymuszonego rozpakowywania SourceKitService przestał się zawieszać.
Mam nadzieję że to pomoże!
źródło
Znalazłem rozwiązanie na forach programistów Apple (które wymaga logowania, więc wyjaśnię to tutaj).
TLDR : Nie importuj a
@protocol
w nagłówku Objective-C do Swift mostkowania o nazwie takiej samej jak@interface
. Na przykład zestaw SDK Facebooka ma zarówno protokół, jak i interfejs o nazwie „FBGraphObject”.Oto post na forum:
źródło
3.17.1
W projekcie użyj innej nazwy niż Swift. „Swift” jest zarezerwowany.
źródło
UIView
.Miałem ten problem co kilka sekund w Xcode 6 Beta 3 i występował nawet w zupełnie nowych projektach. Zmieniłem cel wdrażania z 8.0 na 7.1 i został on zatrzymany.
źródło
Czy twój projekt ma nazwę
Swift
? Po wyświetleniu tego komunikatu kompilacja również się nie powiedzie (<unknown>:0: error: module name "Swift" is reserved for the standard library
). Spróbuj użyć innej nazwy projektu, npSwiftTest
. To by działało.źródło
Aby to naprawić, możesz mieć dziwny problem z kodem Swift. Na przykład posiadanie wielu definicji IBOutletów, ponieważ byłeś w trakcie kopiowania i wklejania. zwykle jest to tylko błąd składniowy, którego nie można było obsłużyć.
źródło
Przekonałem się, że poprzez bezpośrednie (statyczne) wpisanie typów zmiennych, zamiast ich wnioskowania, rozwiązałem problem.
źródło
Zamknij Xcode, jeśli jest otwarty. Następnie z terminalu uruchom:
Spowoduje to przywrócenie domyślnych ustawień Xcode. Otwórz Xcode i wszystko powinno znów działać.
źródło
Dla mnie (xcode 6.1) powodem było to, że zapomniałem dostosować moją podklasę do protokołu.
Na przykład jest to źle:
i to jest w porządku:
źródło
Program składający się tylko z tych dwóch wierszy (być może niepoprawny pod względem składni Swift) jest wystarczający, aby spowodować błąd „Zakończono SourceKitService”
Użycie
let
zamiastvar
powoduje, że edytor zachowuje się normalnie. Wersja Xcode 6.0 (6A215l)źródło
Mam dzisiaj ten sam problem, chodziło o to
println
, właśnie wypróbowałem stary styl NSLog, aby wydrukować wartość:Sposób, w jaki powinniśmy szybko komponować ciągi, ewoluował ze stylu printf do stylu wbudowanego, więc teraz osadzasz swoje wartości bezpośrednio w ciągu formatu:
Tak więc w powyższym przykładzie rozwiązaniem jest:
źródło
Miałem ten sam problem z Xcode6 beta 3 dla projektu utworzonego w wersji beta 2.
Było tak z powodu nowych przełomowych zmian w szybkim języku, tj. Składni deklaracji tablicowej.
Sprawdź, czy kod został wykonany z powodu przełamujących zmian w wersji beta 3.
http://adcdownload.apple.com//Developer_Tools/xcode_6_beta_3_lpw27r/xcode_6_beta_3_release_notes__.pdf
Jednym z przykładów w moim przypadku było:
Musiałem zmienić:
do
Wniosek: wygląda na to, że występuje błąd w kodzie źródłowym, w niektórych warunkach błąd ten jest generowany przez Xcode.
Rozwiązanie do momentu naprawienia błędu: Sprawdź błąd ręcznie :)
Powodzenia!
źródło
Rozwiązaniem dla mnie była zmiana symulatora. Używałem iPhone'a 5S do mojego symulatora, a kiedy przełączyłem go na iPhone'a 5, wszystko działało idealnie. Mamy nadzieję, że przyszła wersja całkowicie to naprawi.
źródło
Odkryłem, że usunięcie danych pochodnych z terminala rozwiązuje problem do następnej awarii. : S
Znajduje się w: / Users / {Nazwa użytkownika} / Library / Developer / Xcode / DerivedData / {Project Name} - {Losowa sekwencja znaków}
Mam nadzieję, że to pomoże.
źródło
Myślę, że wymyśliłem jeden (ponieważ prawdopodobnie jest wiele) powodów, dla których tak się dzieje.
W moim przypadku importowałem pliki Objective-C przez Bridging Header, który miał jedną z następujących prawd:
Naprawianie problemu w aplikacjach w plikach Objective-C LUB usunięcie importu tych plików w nagłówku pomostowym razem wydaje się rozwiązać problem.
Do Twojej wiadomości - jeśli chcesz ustawić cel plików nagłówka (.h), które nie mają pliku implementacji (.m), możesz wykonać następujące proste kroki: Nie można zmienić widoczności docelowego członkostwa w Xcode 4.5
źródło
Aby dodać jeszcze jedno potencjalne rozwiązanie, przypadkowo nazwałem klasę var taką samą nazwą jak jej typ:
Spowoduje to awarię SourceKit NA PEWNO. Głupi błąd składniowy, ale na wypadek, gdyby ktoś popełnił ten sam błąd.
Edycja: również według @Portland Runner:
Podobnie, jeśli ustawisz typ zwracany na nazwę func, otrzymasz błąd.
źródło
func foo() ->foo{}
(dodaj ją do swojej odpowiedzi)Kiedy ten błąd zacznie się pojawiać, po prostu skomentuj ostatni / ostatnio napisany fragment kodu i poczekaj chwilę. Podświetlanie składni powinno się ponownie pojawić. W ten sposób rozwiązuję problem.
źródło
Zgłoszone do Apple (# 17266321):
Detale:
Podsumowanie: Jeśli spróbujemy wydrukować słownik z wartością jako tablicą, pojawi się wyskakujące okienko z napisem „SourceKit zakończony. Funkcjonalność edytora ograniczona czasowo”. Xcode zawiesza się i traci rozpoznawanie kontekstu, powodując czernienie tekstu.
Kroki do odtworzenia: 1. Utwórz tablicę jako - „var iOSHistoryArray = [„ iOS6 ”,„ iOS7 ”,„ iOS8 ”,]„
Utwórz słownik jako - „var MacOSYosemiteFeatures: Dictionary = [„ Device ”: iOSHistoryArray]”.
Wydrukuj słownik jako - „println („ Słownik zawierający wartość Array:% @ \ n ”, MacOSYosemiteFeatures)” (<< - Culprit - >>)
Krok 3 powoduje komentowanie problemu, dzięki czemu Xcode działa ponownie.
Oczekiwane wyniki: Xcode powinien działać normalnie.
Rzeczywiste wyniki: Xcode przestaje działać, traci rozpoznawanie kontekstu (cała czcionka zostaje utracona, a cały tekst staje się zwykły czarny), cały Xcode staje się nieaktywny.
Wersja: Wersja 6.0 (6A215l)
źródło
Spróbuj:
źródło
Problem:
Mój przypadek: Zainstalowałem wersję beta 3, tylko OSX, jeden plik wykrył, że operator „zakresu pół-zamkniętego zakresu został zmieniony z… na… <”. Pojawi się wyskakujące okienko, a podświetlenie kodu przestanie działać.
Rozwiązanie:
źródło
W xcode przejdź do paska menu >> okno >> urządzenia (shift + cmd + 2), pojawi się nowe okno, aw lewym dolnym rogu dodaj nowy symulator, a konkretnie działający na iOS 8.0 do istniejącej listy edycji : może być konieczne ponowne uruchomienie xcode
odwołanie: http://www.reddit.com/r/swift/comments/2bznfo/error_running_playground_unable_to_find_suitable/
źródło
W moim przypadku zaimportowałem brakujące pliki do zmostkowanego nagłówka. Po usunięciu nieprawidłowego importu zniknęło powiadomienie o błędzie.
źródło
Miałem ten sam błąd w zagnieżdżonym projekcie Objective-C ++, który teraz zawiera Framework z kodem Swift. Aby rozwiązać ten problem, musiałem wyraźnie zbudować platformę. Kiedy to zrobiłem, problem zniknął i nie wraca;)
źródło
Nadal dzieje się z wersją xcode 6 6.0 (6A313)
Awarie
ps: nowy Mac mini, bez wcześniejszych instalacji xcode, nic egzotycznego. Chyba tylko produkt w wersji beta.
źródło
Xcode 6.1 Beta 3:
Gdy tylko zdefiniujesz nieprywatny alias typu (np.
typealias Foo = Int
) W jednym pliku Swift, wpisz literęc
w innym pliku, SourceKitService ulega awarii.Rozwiązaniem jest zrezygnowanie z używania aliasów typów, poczekanie na następną wersję beta lub zawarcie aliasów typów w definicjach klas:
i użyj tego w ten sposób:
źródło
Zmieniłem cel wdrażania na iOS 8.0. Wiem, że ktoś powiedział, że przeniesienie go do <= 7.1 działało, ale ten problem wydaje się pochodzić z wielu źródeł, więc ta alternatywa może działać.
źródło