SourceKit 서비스가 종료되었습니다.
Swift에서 "Source Kit Service Terminated"라는 오류가 나타나고 구문 강조 표시와 코드 완성이 모두 사라지는 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.
이 이미지는 트위터에서 확인하세요. - 를 가가장 the the the the
OS X
로로 합니다.iOS
다른 에러가 발생합니다(불행하게도 적어 두지 않았습니다). - 프로젝트를클래스에서 합니다.
SourceKitService Terminated
이 스레드에 문제가 있습니다.
디버깅 프로세스:
- 처음에는 구글에서 SourceKitService를 검색했지만, 거의 검색되지 않았습니다.
- Xcode Console.app을 선택합니다.여기에는 몇 가지 오류가 표시되었습니다.
IDEPlaygroundDocument: Error encountered running playground
com.apple.CoreSimulator.CoreSimulatorService[3952]: The runtime for the selected device is not installed.
이 문제를 해결하기 위해 내가 한 일.
Swift 프로젝트의 컨텍스트 내에서만 문제가 발생할 경우 먼저 이것만 사용해 보십시오.그래도 문제가 해결되지 않으면 다음 단계를 모두 시도해 보십시오.
- 프로젝트를 열고 대상의 배포 대상을 <= 7.1로 변경합니다.
더 오래 걸리고 복잡한 과정.(처음 3단계는 확실히 도움이 되지 않습니다만, 이미 실행했기 때문에 여기에 기록합니다.)
- 시스템에서 Xcode의 모든 복사본을 완전히 삭제합니다.
- 컴퓨터를 재부팅하세요.
- Xcode6-beta만 다시 설치합니다.
- 놀이터 및/또는 프로젝트에서 아직 문제가 발생하는지 확인합니다.
- iOS 시뮬레이터를 엽니다.
- 하드웨어 -> 디바이스 -> 디바이스 관리
- 모든 디바이스를 제거합니다.
- 원하는 모든 디바이스를 재생성합니다.이름 끝에 iOS 버전을 첨부했습니다.
- Xcode와 시뮬레이터를 재시작합니다.
- 시 문제가 하지 않는지 합니다.
OS X
로로 합니다.iOS
. - 프로젝트를 열고 대상의 배포 대상을 <= 7.1로 변경합니다.
분석.
Xcode6가 시뮬레이터를 제대로 검색하여 연결할 수 없는 것이 문제인 것 같습니다.왜 그런지는 알 수 없지만, Swift와 함께 개발을 계속할 수 있게 되었습니다.이것은 시뮬레이터 쌍성이 움직인 것처럼 보이는 사실과 관련이 있을 수 있습니다.
"ModuleCache"를 삭제하기만 하면 됩니다. 이것은 Xcode가 자동 완성을 위해 사용하는 일종의 캐시입니다.
터미널에 다음 행을 복사하여 붙여넣습니다.
rm - rf ~/Library/Developer/Xcode/Derived Data/ModuleCache
입력하자마자 시스템에서 SourceKitService가 크래시됨
extension foo {
Xcode 6 베타 6을 사용하고 있기 때문에 빈 파일에 입력하든 기존 파일에 추가하든 상관없습니다.에 1개가 extension
블록, 추락합니다.이는 새로 생성된 프로젝트에서도 발생합니다.
저의 "솔루션"은 현재 작업 중인 소스의 확장을 피하는 것입니다.클래스 블록의 끝과 확장 블록의 시작을 코멘트 아웃합니다.수업에 대한 작업을 마치자마자 다시 코멘트를 붙입니다.
class MyClass {
[... my stuff ...]
//}
//
//extension MyClass {
}
touchsMoved-function을 삽입한 후 spritekit 프로젝트에서 발생하였습니다.이 함수는 강제 언랩을 사용합니다.이것이 문제의 원인인 것 같습니다.
override func touchesMoved(touches: NSSet!, withEvent event: UIEvent!)
느낌표를 삭제하고 강제 래핑을 중지한 후 SourceKit Service가 크래시를 중지했습니다.
이게 도움이 됐으면 좋겠네요!
Apple의 Developer Forums(로그인 필요)에서 솔루션을 찾았습니다(여기에서도 설명하겠습니다).
TLDR: Import하지 않음@protocol
Optival-C' Swift와 .@interface
Facebook SDK "FBGraph Object" "FBBGraph Object는 FBGraph Object입니다.
포럼 투고는 다음과 같습니다.
Facebook SDK를 추가하면 SourceKitService가 크래시됩니다.만약 당신이 베타 3을 사용하고 Facebook SDK를 필요로 한다면, 내가 발견해서 나를 위해 일하고 있는 하나의 작업은 Facebook SDK의 @protocol FBGraph Object를 리팩터링하고 @interface FBGraph Object Protocol과 같은 이름으로 이름을 바꾸는 것입니다.
이것은 확실히 기능성을 유지하기 위한 일시적인 해결책이며, 프레임워크 라이브러리를 사용하는 대신 Cocoapods를 사용하거나 Facebook SDK를 직접 구축해야 합니다.
당분간 @protocol과 @interface 선언이 충돌하지 않도록 해야 합니다.또, 사용하고 있는 서드 파티제 라이브러리가 포함되어 있습니다.
오늘 비용 많이 들었어요. 도움이 됐으면 좋겠네요!
2014년 7월 10일 e.parto에 의해 게시됨
프로젝트에는 Swift 이외의 이름을 사용합니다."Swift"는 예약되어 있습니다.
Xcode 6 Beta 3에서는 몇 초 간격으로 이 문제가 발생했고, 완전히 새로운 프로젝트에서도 계속되었습니다.배포 대상을 8.0에서 7.1로 변경했는데 중지되었습니다.
프로젝트명은Swift
이 메시지가 뜨면 빌드도 실패합니다(<unknown>:0: error: module name "Swift" is reserved for the standard library
와 다른 . 다음과 같은 다른 프로젝트 이름을 사용해 보십시오.SwiftTest
잘 될 거야
이 문제를 해결하기 위해 Swift 코드에 이상한 문제가 있을 수 있습니다.예를 들어 복사 및 붙여넣기 중이었기 때문에 IBOutlets가 여러 번 정의되었습니다.보통 이것은 처리할 수 없는 구문 오류일 뿐입니다.
변수 유형을 추론하는 것이 아니라 명시적으로(정적으로) 입력함으로써 문제를 해결할 수 있다는 것을 알게 되었습니다.
Xcode가 열려 있는 경우는 종료합니다.그런 다음 터미널에서 다음을 실행합니다.
defaults delete com.apple.dt.Xcode
그러면 Xcode가 기본 설정으로 복원됩니다.Xcode를 열면 모든 것이 다시 작동합니다.
나(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
6.06A215lXcode 6.0(6A215l)X코드 6.0(6A215l)
를 받았습니다. ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★println
NSLog를 사용합니다.
// something like this
println("value = %@", valueObj)
문자열을 빠르게 구성하는 방법은 printf 스타일에서 인라인 스타일로 발전했기 때문에 다음과 같이 값을 포맷 문자열에 직접 포함시킬 수 있습니다.
"Here goes \(YOUR_VARIABLE)"
위의 예시는 다음과 같습니다.
println("value =\(valueObj)")
Xcode6 베타3에서도 베타2로 작성된 프로젝트에 대해 같은 문제가 있었습니다.
이는 어레이 선언 구문과 같은 신속한 언어의 새로운 변화 때문입니다.
베타 3의 변경으로 인해 영향을 받는 코드가 있는지 확인합니다.
제 사례 중 하나는 다음과 같습니다.
나는 변해야 했다.
var tabBarController : UITabBarController = self.window?.rootViewController as UITabBarController;
로.
var tabBarController : UITabBarController = self.window!.rootViewController as UITabBarController
결론:소스 코드에 오류가 있는 경우 이 오류는 Xcode에 의해 발생하는 것으로 보입니다.
버그가 수정될 때까지의 해결책:수동으로 에러를 확인합니다. : )
행운을 빕니다.
저의 해결책은 시뮬레이터를 바꾸는 것이었습니다.시뮬레이터에 iPhone 5S를 사용하고 있었는데, iPhone 5로 바꾸자 모든 것이 완벽하게 동작했습니다.향후 버전에서는 완전히 수정될 것으로 기대됩니다.
단말기에서 파생된 데이터를 삭제하면 다음 크래시가 발생할 때까지 문제가 해결된다는 것을 알게 되었습니다.:S
이 파일은 /Users/{User name}/Library/Developer/Xcode/Derived Data/{Project Name}-{Random char sequence}에 있습니다.
이게 도움이 됐으면 좋겠어요.
나는 이것이 일어나는 이유 중 한 가지를 알 것 같다.
이 경우 다음 중 하나의 true를 가진 Bridging Header를 통해 Objective-C 파일을 Import하고 있었습니다.
- Objective-C 가져오기를 위한 구현 파일(.m)에 앱 대상이 올바르게 설정되지 않았습니다.
- Objective-C 파일에는 헤더(.h) 파일만 있고 실장(.m) 파일은 없습니다.(다시 말씀드리지만, 타겟은 .m 파일에서만 설정할 수 있고.h 파일은 설정할 수 없기 때문에 이것은 "no provile app target" 세트의 일부라고 생각합니다.)
Objective-C 파일에서 앱 대상을 수정하거나 Bridging Header에서 해당 파일의 Import를 모두 삭제하면 문제가 해결되는 것으로 보입니다.
참고로 구현(.m) 파일이 없는 헤더(.h) 파일의 타겟을 설정할 필요가 있는 경우는, 다음의 간단한 순서를 실행할 수 있습니다.Xcode 4.5에서 대상 멤버쉽 가시성을 변경할 수 없음
여기에 잠재적인 솔루션을 하나 더 추가하기 위해 실수로 클래스 var에 해당 유형의 이름을 붙였습니다.
class var Settings:Settings {
get { return classVarWorkAround.settings }
}
이렇게 하면 SourceKit이 확실히 충돌합니다. 멍청한 구문 오류입니다. 하지만 다른 사람이 같은 실수를 할 경우를 대비해서.
편집: 또한 @Portland Runner:
마찬가지로 반환 유형을 펑크 이름으로 설정하면 오류가 발생합니다.
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 terminated" (소스킷이 종료되었습니다)에디터 기능이 일시적으로 제한됩니다.Xcode 텍스트가 검게 되는 컨텍스트 인식을 동결 및 소실합니다.
재생 절차: 1. 어레이를 "var iOSHistory Array = ["iOS6", "iOS7", "iOS8","로 만듭니다.
사전을 -"var MacOSYosemiteFeatures로 만듭니다.사전 = ["Device":iOSHistoryArray].
사전을 println("어레이 값: %@\n", MacOSYosemite Features") (<-Criner-->)로 인쇄합니다.
스텝 3에 의해, 문제의 코멘트가 발생하고, X코드가 다시 기능합니다.
예상 결과: X코드는 정상적으로 동작합니다.
실제 결과: Xcode가 기능하지 않게 되어 컨텍스트 인식이 없어집니다(모든 글꼴이 없어지고 모든 텍스트가 검게 됩니다). Xcode 전체가 비활성화 됩니다.
버전:버전 6.0 (6A215l)
체험:
Swift 컴파일러/인덱서에 버그가 있습니다.코드의 몇 줄 또는 몇 줄 때문에 문제가 발생하고 있습니다.Xcode로 프로젝트를 열려면 먼저 다른 텍스트 에디터를 사용하여 코드를 편집하여 문제의 행을 코멘트해야 합니다.문제가 무엇인지 알 수 없는 경우 모든 코드를 코멘트합니다.프로젝트를 열면 CPU 액티비티가 증가하여 문제가 발견될 때까지 조금씩 코드를 되돌릴 수 있습니다.
문제:
- 소스 코드에 오류가 있는 경우 "SourceKitService Terminated" 팝업이 나타나고 코드 강조 표시가 작동을 중지할 수 있습니다.여러 다른 조건에서 발생할 수도 있고 발생하지 않을 수도 있습니다.
내 경우:설치된 베타 3(OSX 전용 프로젝트)에서 "하프 클로즈 범위 연산자가 ..에서 ..로 변경됨"을 한 파일에서 감지했습니다.<" 에러입니다.팝업이 뜨기 시작하고 코드 하이라이팅이 실패합니다.
솔루션:
- Xcode에 의해 검출된 수정 오류
- Navigator에서 다른 .swift로 변경 후 원래 상태로 돌아갑니다.
- 구문 강조 표시가 다시 나타나고 "SourceKitService Terminated" 팝업이 사라집니다.
xcode에서 메뉴바 >> window >> 디바이스(shift+cmd+2)로 이동하면 새 창이 팝업 됩니다.왼쪽 하단에 새 시뮬레이터, 특히 iOS 8.0에서 실행 중인 시뮬레이터를 기존 목록 편집에 추가합니다.xcode를 재시작해야 할 수 있습니다.
참고 자료 : http://www.reddit.com/r/swift/comments/2bznfo/error_running_playground_unable_to_find_suitable/
제 경우 브리지된 헤더에 누락된 파일을 Import했습니다.잘못된 Import를 삭제한 후 오류 알림이 사라졌습니다.
현재 Swift 코드가 포함된 Framework를 포함하는 중첩된 Objective-C++ 프로젝트에서도 동일한 오류가 발생했습니다.이 문제를 해결하기 위해 저는 명시적으로 프레임워크를 구축해야 했습니다.그 문제는 일단 해결되어 다시 돌아오지 않습니다.
xcode 6 Version 6.0 (6A313)에서도 아직 발생.
- 새 프로젝트 생성
- 프레임워크 및 라이브러리 추가
- 코코아 터치 프레임워크 선택
- Swift 파일 추가
- 스위프트 파일에 클래스 추가
크래시
ps: 새로운 mac mini, 이전 xcode 설치 없음, 이국적인 느낌 없음.베타 제품인 것 같아요.
Xcode 6.1 베타 3:
비프라이빗 타입의 에일리어스를 정의하는 즉시(예:typealias Foo = Int
)를 1개의 Swift 파일에 입력합니다.c
SourceKitService가 크래시합니다.
솔루션은 유형 별칭 사용을 중지하거나 다음 베타 릴리스를 기다리거나 유형 별칭을 클래스 정의로 래핑하는 것입니다.
public class DummyClass {
public typealias Foo = String
}
다음과 같이 사용합니다.
var myVar:DummyClass.Foo?
도입 대상을 iOS 8.0으로 변경한 것이 효과적이었다.<=7.1>로 옮기는 것이 효과가 있다고 하는 것은 알고 있습니다만, 이 문제는 여러 곳에서 발생하고 있는 것 같기 때문에, 이 대체 방법이 효과가 있을지도 모릅니다.
언급URL : https://stackoverflow.com/questions/24006206/sourcekitservice-terminated
'programing' 카테고리의 다른 글
인쇄 탭에서 '모든 열을 한 페이지에 맞춤'을 설정하는 방법 (0) | 2023.04.14 |
---|---|
NSUserDefaults가 NSMutableDictionary를 iOS에 저장하지 못한 이유는 무엇입니까? (0) | 2023.04.14 |
VBA와 VSTO의 차이점은 무엇입니까? 업그레이드해야 합니까? (0) | 2023.04.14 |
다른 목록에서 한 목록에서 항목 제거 (0) | 2023.04.14 |
LINQ를 사용하여 리스트에서 요소 제거 (0) | 2023.04.14 |