"Source Kit Service Terminated"오류가 발생하고 모든 구문 강조 표시 및 코드 완성이 Swift에서 사라지는 Xcode에 문제가 있습니다. 이 문제를 어떻게 해결할 수 있습니까?
다음은 이미지 예입니다.
"Source Kit Service Terminated"오류가 발생하고 모든 구문 강조 표시 및 코드 완성이 Swift에서 사라지는 Xcode에 문제가 있습니다. 이 문제를 어떻게 해결할 수 있습니까?
다음은 이미지 예입니다.
답변:
내 대답 (Xcode6-Beta7)은 단순히 파생 데이터 폴더를 삭제하는 것이 었습니다.
Preferences > Locations > Derived Data > click the arrow to open in Finder > trash it.
이것이 누군가를 돕기를 바랍니다. 이 충돌이 발생할 수있는 많은 이유가 있습니다.
더 일반적인 목적의 해결책을 찾았을 것입니다. 아래는 Xcode가 SourceKitService Terminated
오류 를 일으키지 않도록 권장하는 단계 입니다.
Error running playground: Failed prepare for communication with playground.
참조) .OS X
로 전환하면 iOS
다른 오류가 발생합니다 (불행히도 그 오류를 쓰지 않았습니다).SourceKitService Terminated
이 스레드 에서 문제가 발생합니다.IDEPlaygroundDocument: Error encountered running playground
com.apple.CoreSimulator.CoreSimulatorService[3952]: The runtime for the selected device is not installed.
Swift 프로젝트와 관련하여 문제가있는 경우 먼저이 문제를 먼저 시도하십시오. 그래도 문제가 해결되지 않으면 아래의 모든 단계를 시도하십시오.
더 길고 참여적인 프로세스. (처음 3 단계는 확실히 도움이되지는 않았지만 여기서 수행 했으므로 여기에 기록하십시오)
OS X
로를 iOS
.Xcode6에서 시뮬레이터를 올바르게 찾아 연결하지 못하는 문제가있는 것 같습니다. 나는 이것이 왜 그런지 결정할 수 없었지만, 이것은 Swift로 계속 개발할 수있게 해주었습니다. 이것은 시뮬레이터 바이너리 가 이동 한 것처럼 보일 수 있습니다 .
"ModuleCache"를 삭제하면됩니다. 이것은 자동 완성을 위해 Xcode에서 사용하는 일종의 캐시입니다.
터미널에 다음 줄을 복사하여 붙여 넣습니다.
rm -rf ~ / Library / Developer / Xcode / DerivedData / ModuleCache
입력하자마자 SourceKitService가 시스템에서 충돌합니다.
extension foo {
Xcode 6 베타 6을 사용하고 있으며 빈 파일에 입력하거나 기존 파일에 추가하는 것은 중요하지 않습니다. 소스에 하나의 extension
블록이 포함 되면 충돌이 발생합니다.이것은 새로 생성 된 프로젝트에서도 발생합니다.
내 "솔루션"은 현재 작업중인 소스의 확장을 피하는 것입니다. 클래스 블록의 끝과 확장 블록의 시작을 주석 처리합니다. 수업을 마치 자마자 다시 언급합니다.
class MyClass {
[... my stuff ...]
//}
//
//extension MyClass {
}
Apple 개발자 포럼 에서 솔루션 을 찾았 습니다 (로그인이 필요하므로 여기에서도 설명하겠습니다).
TLDR : @protocol
Objective-C에서 Swift 브리징 헤더로와 같은 이름을 가져 오지 마십시오 .@interface
. 예를 들어 Facebook SDK에는 "FBGraphObject"라는 인터페이스와 프로토콜이 모두 있습니다.
포럼 게시물은 다음과 같습니다.
Facebook SDK를 추가하면 SourceKitService가 중단됩니다. 베타 3을 사용하고 Facebook SDK가 필요한 경우 Facebook SDK의 @protocol FBGraphObject를 리팩터링하고 @protocol FBGraphObjectProtocol과 같은 것으로 이름을 바꾸는 것이 @interface FBGraphObject도 존재하며 분명히 SourceKit 그것을 좋아하지 않습니다.
기능을 유지하기위한 임시 솔루션이므로 프레임 워크 라이브러리를 사용하는 대신 Cocoapods를 사용하거나 Facebook SDK를 직접 구축해야합니다.
당분간, @protocol 및 @interface 선언이 충돌하지 않아야하며 사용중인 타사 라이브러리가 포함되어 있는지 확인해야합니다.
오늘 비용이 들었습니다. 도움이 되길 바랍니다.
에 의해 게시 됨 e.parto 에 2014 7월 10일
3.17.1
프로젝트에 Swift 이외의 다른 이름을 사용하십시오. "Swift"는 예약되어 있습니다.
UIView
.
나를 위해 (xcode 6.1) 이유는 프로토콜에 내 서브 클래스를 채택하는 것을 잊어 버렸기 때문입니다.
예를 들어 이것은 잘못되었습니다.
protocol SomeProtocol { ... }
class A :NSObject, SomeProtocol {
...
}
class B : A {
...
}
그리고 이것은 괜찮습니다 :
protocol SomeProtocol { ... }
class A : NSObject, SomeProtocol {
...
}
class B : A, SomeProtocol {
...
}
이 두 줄로만 구성된 프로그램 (Swift 구문의 관점에서 잘못된 것)은 여기서 "SourceKitService Terminated"오류를 발생시키기에 충분합니다.
var x = 42
println("Hello", x)
사용 let
하는 대신 var
다시 정상적으로 에디터 동작합니다한다. Xcode 버전 6.0 (6A215l)
오늘 같은 문제가 발생 println
했습니다.는 이전 NSLog 스타일을 사용하여 값을 인쇄하려고했습니다.
// something like this
println("value = %@", valueObj)
우리가 신속하게 문자열을 작성하는 방법은 printf 스타일에서 인라인 스타일로 발전 했으므로 이제 다음과 같이 형식 문자열에 값을 포함시킵니다.
"Here goes \(YOUR_VARIABLE)"
따라서 위의 예에서 해결책은 다음과 같습니다.
println("value =\(valueObj)")
베타 2에서 만든 프로젝트에 대해 Xcode6 베타 3과 동일한 문제가있었습니다.
신속한 언어, 즉 배열 선언 구문의 새로운 주요 변경 때문이었습니다.
베타 3의 변경 사항을 위반하여 영향을받는 코드를 확인하십시오.
내 경우의 예 중 하나는 다음과 같습니다.
나는 바꿔야했다.
var tabBarController : UITabBarController = self.window?.rootViewController as UITabBarController;
에
var tabBarController : UITabBarController = self.window!.rootViewController as UITabBarController
결론 : 소스 코드에 오류가있는 경우 일부 조건에서이 오류는 Xcode에 의해 생성됩니다.
버그가 수정 될 때까지 해결 : 수동으로 오류를 확인하십시오. :)
행운을 빕니다!
나를위한 해결책은 시뮬레이터를 바꾸는 일이 일어났습니다. 시뮬레이터로 iPhone 5S를 사용하고 있었고 iPhone 5로 전환했을 때 모든 것이 완벽하게 작동했습니다. 바라건대 미래 버전이 완전히 수정되기를 바랍니다.
나는 이것이 발생하는 이유 중 하나 (아마도 많은 것이 있기 때문에)를 파악했다고 생각합니다.
제 경우에는 다음 중 하나에 해당하는 브리징 헤더를 통해 Objective-C 파일을 가져 왔습니다.
Objective-C 파일에서 앱 대상을 수정하거나 브리징 헤더에서 해당 파일 가져 오기를 모두 제거하면 문제가 해결되는 것으로 보입니다.
참고-구현 (.m) 파일이없는 헤더 (.h) 파일의 대상을 설정해야하는 경우 다음과 같은 간단한 단계를 수행 할 수 있습니다. Xcode 4.5에서 대상 멤버쉽 표시를 변경할 수 없습니다
여기에 하나의 잠재적 인 솔루션을 추가하기 위해 실수로 클래스 이름을 유형과 동일한 이름으로 지정했습니다.
class var Settings:Settings {
get { return classVarWorkAround.settings }
}
SourceKit FOR SURE가 중단됩니다. 어리석은 구문 오류이지만 다른 사람이 같은 실수를 저지른 경우.
편집 : @Portland Runner에 따르면 :
마찬가지로 반환 유형을 func 이름으로 설정하면 오류가 발생합니다.
func foo() ->foo{}
func foo() ->foo{}
(답변에 자유롭게 추가하십시오)
이 오류가 뜨기 시작하면, 당신이 작성한 마지막 / 최근 코드를 주석 처리하고 잠시 기다리십시오. 구문 강조가 다시 나타납니다. 이것이 내가 문제를 해결하는 방법입니다.
func someFunc() -> (Int?, Int?, Int?) {
var retVal1:Int? = nil
var retVal2:Int? = nil
var retVal3:Int? = nil
//some other code
//commenting out the line below helped me
//(retVal1, retVal2, retVal3)
return (retVal1, retVal2, retVal3)
}
Apple에보고 (# 17266321) :
세부:
요약 : 배열로 값을 가진 사전을 인쇄하려고하면 팝업에서 팝업이 계속 나타납니다. "SourceKit가 종료되었습니다. 편집기 기능이 일시적으로 제한되었습니다" Xcode 컨텍스트 인식을 고정 및 느슨하게하여 텍스트를 검게 만듭니다.
재현 단계 : 1. "var iOSHistoryArray = ["iOS6 ","iOS7 ","iOS8 ",]"
사전을- "var MacOSYosemiteFeatures : Dictionary = ["Device ": iOSHistoryArray]"로 작성하십시오.
"println ("배열 값을 포함하는 사전 : % @ \ n ", MacOSYosemiteFeatures)" (<<-Culprit->>)
3 단계는 Xcode를 다시 작동시키는 주석 처리 문제를 일으 킵니다.
예상 결과 : Xcode가 정상적으로 작동해야합니다.
실제 결과 : Xcode가 작동하지 않고 컨텍스트 인식이 느슨해지며 (모든 글꼴이 손실되고 모든 텍스트가 검은 색으로 표시됨) 전체 Xcode가 비활성화됩니다.
버전 : 버전 6.0 (6A215l)
시도 해봐:
Swift 컴파일러 / 인덱서에 버그가 있습니다. 코드의 일부 라인이 어려움을 겪고 있습니다. Xcode로 프로젝트를 열려면 먼저 다른 텍스트 편집기로 코드를 편집하여 문제를 일으키는 행을 주석 처리해야합니다. 문제가 무엇인지 전혀 모른다면 모든 코드를 주석 처리하십시오. 프로젝트가 열리면 CPU 활동이 증가하여 문제를 발견 할 때까지 코드를 조금씩 가져 오기 시작할 수 있습니다.
문제:
내 경우 : 베타 3, OSX 전용 프로젝트 설치 중 하나의 파일에서 "반 폐쇄 범위 연산자가 ..에서 .. <"로 변경되었습니다. 팝업이 나타나고 코드 강조 표시가 실패하기 시작합니다.
해결책:
xcode에서 메뉴 막대 >> 창 >> 장치 (shift + cmd + 2)로 이동하여 새 창이 나타나면 왼쪽 하단에서 새 시뮬레이터, 특히 iOS 8.0에서 실행되는 시뮬레이터를 기존 목록 편집에 추가하십시오. : xcode를 다시 시작해야 할 수도 있습니다
굴절 : http://www.reddit.com/r/swift/comments/2bznfo/error_running_playground_unable_to_find_suitable/