SourceKitServiceが終了しました


242

Xcodeに問題があり、「ソースキットサービスが終了しました」というエラーが表示され、Swiftですべての構文の強調表示とコードの補完が行われません。どうすれば修正できますか?

以下は画像の例です。

ここに画像の説明を入力してください


1
これはXcodeベータの問題のようです。Xcodeを再起動すると問題が解決しましたが、プロジェクトを再度開くとエラーが発生して停止しました。
ThomasW

4
私はこの問題を抱え始めたばかりです...その後、swiftファイルに構文エラーを見つけました。これを修正すると、エディターが再び動作し始めました。
ブリンディ2014

80
これを今すぐ修正するために私は殺します...
サンタクロース

2
エラーは確かにSwift内の構文エラーが原因です。構文エラーを削除すると、エラーは解消されます:)
Steffen Brem

2
6.1で解決されないだけでなく、エラーではない最も小さな「エラー」でも発生します。まだタイプしている間、それトリガーすることができます。「構造体」の「stru」に到達したときに発生しました。「ct」を取得する前に何かを伝えたかったのでないでしょう
Maury Markowitz、2014年

回答:


114

私の答え(Xcode6-Beta7)は、単にDerived Dataフォルダーを削除することでした。

Preferences > Locations > Derived Data > click the arrow to open in Finder > trash it.

これが誰かを助けることを願っています。このクラッシュが発生する理由はたくさんあります。


ありがとう、これで直った。
Noura、2014

4
これで問題が解決したようですが、Xcode 6.1 GMも使用しています。
Flovdis、2014年

7
これで約10分間修正された後、変数の名前を変更すると元に戻ります。
hariseldon78 2014年

1
恒久的な修正ではなく、答えの拡張だけです。シェルスクリプトを作成し、それが発生したときに実行しますrm -frd〜/ Library / Developer / Developer / Xcode / DerivedData / * rm -frd〜/ Library / Caches / com.apple.dt。 Xcode / *
Raj

2
私の問題は解決しませんでした
Shirish Kumar

35

もっと汎用的な解決策を見つけたのではないかと思います。以下は、XcodeがSourceKitService Terminatedエラーを生成しないようにするために使用した手順です。


私が持っていた症状:

  • 新しい遊び場を起動すると、遊び場と通信できないというエラーが表示されます(この画像をTwitterでError running playground: Failed prepare for communication with playground.参照してください)。
  • プレイグラウンドをからOS Xに切り替えると、iOS別のエラーが表示されます(残念ながら、それを書き留めませんでした)。
  • iOSベースのSwiftプロジェクトで入力を開始し、UIKit固有のクラスでコード補完/インテリセンスを使用しようとすると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プロジェクトのコンテキストでのみ問題が発生している場合は、まずこれだけを試してください。それでも問題が解決しない場合は、以下のすべての手順を試してください。

  1. プロジェクトを開き、ターゲットのデプロイメントターゲットを7.1以下に変更します。

より長く複雑なプロセス。(最初の3つのステップは必ずしも役に立ちませんが、私はそれらを実行したので、ここに記録します)

  1. システム上のXcodeのすべてのコピーを完全に削除します。
  2. コンピュータを再起動してください。
  3. Xcode6-betaのみを再インストールします。
  4. 遊び場やプロジェクトでまだ問題があることを確認します。
  5. iOSシミュレータを開きます。
  6. ハードウェア->デバイス->デバイスの管理
  7. すべてのデバイスを取り外します。
  8. 必要なすべてのデバイスを再作成します。名前の末尾にiOSバージョンを追加しました。
  9. Xcodeとシミュレーターを再起動します。
  10. からに切り替えたときに、少なくとも遊び場で問題が発生しなくなったことを確認OS XiOSます。
  11. プロジェクトを開き、ターゲットのデプロイメントターゲットを7.1以下に変更します。

分析

問題は、Xcode6がシミュレータを適切に見つけて接続できないことにあるようです。なぜそうなのか判断できませんでしたが、これによりSwiftでの開発を続けることができました。これは、シミュレータのバイナリが移動したように見えるという事実に関係している可能性があります。


2
同様の問題がありました:「選択したデバイスのランタイムがインストールされていません。」iPhonesimulatorのプレイグラウンドの実行中にエラーが発生しました。ステップ5.〜9。問題を修正しました。
大麦14年

注意点として、Xcode 6 Beta 3で問題が完全に解決されました。方法や理由がわかりません。うまくいけば、同じことが他の人にも当てはまります。
Andrew Monshizadeh 2014

2
これらの手順をありがとう。展開ターゲットを7.0から7.1に調整しましたが、今のところ問題は解決しているようです。
Nick

展開ターゲットを7.1に設定するとうまくいきましたが、私はアプリターゲットと一緒にフレームワークターゲットを使用しているため、コンパイルが失敗し、これは本当に悪いことです。しかし、色が戻ってきても、コードの提案はもうありません!
ソロモン

1
これらの手順をすべて実行しましたが、うまくいきませんでした。:-/
Rohit Goyal 2015

32

「ModuleCache」を削除するだけでよく、これはXcodeがオートコンプリートのために使用するある種のキャッシュです。

ターミナルに次の行をコピーして貼り付けます。

rm -rf〜/ライブラリ/ Developer / Xcode / DerivedData / ModuleCache


1
これでうまくいきました。しばらくの間、IOSデバイスがアクティブなスキームで選択されている場合にのみ、ハイライトとオートコンプリートを取得できました。
Wez 2014年

1
これも私にとってはうまくいきました。ここのリリースノートによると、 この一部はXcode 6.1.1 GMシードで修正されています
Jacob Harding

悲しいかな、数年後、Xcodeは間違いなく修正されていません。Xcode 8.1(8B62)を使用していても、シンボルをクリックするたびにSourceKitServerがクラッシュします。派生データをクリアし、ModuleCacheを削除しました。Xcodeを再起動しました。Xcodeを再インストール。新しいマシンにXcodeをインストールした。同じことが起こります。Xcodeは悲惨な混乱です。
Womble 2016年

27

入力するとすぐにSourceKitServiceがシステムでクラッシュする

extension foo {

Xcode 6ベータ6を使用しています。空のファイルに入力するか、既存のファイルに追加するかは関係ありません。ソースに1つのextensionブロックが含まれるとすぐにクラッシュします。これは、新しく作成されたプロジェクトでも発生します。

私の「解決策」は、現在取り組んでいるソースの拡張を避けることです。クラスブロックの終わりと拡張ブロックの始まりをコメント化します。クラスでの作業が終了したらすぐに、もう一度コメントします。

class MyClass {

    [... my stuff ...]

//}
//
//extension MyClass {

}

ただ注-拡張機能はベータ5ではこれを行いませんでした。これは新しいベータ6の「機能」です。
Gene De Lisa

プロジェクトに多数の拡張機能があるため、他の回避策。現在、このXcodeを使用できません。
Bagusflyer 2014

これこれこれこれ 私の最近のプロジェクトでは、それが私の悩みの種です。バグレポートを提出してください。
ベンクリーガー2014

2
私にとっても大きな問題です。拡張機能を独自のファイルに移動し、クラスにコードを記述して、拡張機能にコピーして貼り付けるだけにしました。これがどのように潜入するかは少し不可解です。
Andrew Monshizadeh 2014

9

touchesMoved-functionを挿入した後、私のspritekitプロジェクトで発生し始めました。この関数は強制アンラップを使用しているため、問題が発生する可能性があります。

override func touchesMoved(touches: NSSet!, withEvent event: UIEvent!)

感嘆符を削除して強制アンラップを停止した後、SourceKitServiceがクラッシュしなくなりました。

お役に立てれば!


私のために働いた!
どうも

9

Appleの開発者フォーラムで解決策を見つけまし(ログインが必要なので、ここでも説明します)。

TLDR@protocolと同じ名前のObjective-C to Swiftブリッジヘッダーにをインポートしないでください@interface。たとえば、Facebook SDKには「FBGraphObject」という名前のプロトコルとインターフェイスの両方があります。

ここにフォーラムの投稿があります:

Facebook SDKを追加すると、SourceKitServiceがクラッシュします。ベータ3を使用する必要があり、Facebook SDKが必要な場合、私が見つけて私のために働いている1つの回避策は、Facebook SDKの@protocol FBGraphObjectをリファクタリングし、@ protocol FBGraphObjectProtocolのような名前に変更することです。それが好きではありません。

これは、機能を維持するための一時的なソリューションであり、フレームワークライブラリを使用するのではなく、Cocoapodsを使用するか、Facebook SDKを自分でビルドする必要があります。

当面は、@ protocol宣言と@interface宣言が競合していないことを確認する必要があります。これには、使用している可能性のあるサードパーティライブラリも含まれます。

これは今日私にかかりました、それが役に立てば幸いです!


e.partoによる2014年7月10日の投稿


どうもありがとう。それは私の問題を解決しました。
Viktor Radchenko 2014

このバグは、Jon SterlingのLightweight Immutabilityのパターン(jonmsterling.com/posts/…)を使用している場合に発生する可能性があります。これは、実装と名前を共有するプロトコルにアドバイスするためです。プロトコルの名前を変更すると、問題が解決し、悪影響はありませんでした。
erikprice 2014

これはFacebook SDKで私のために解決されました3.17.1
KVISH 2014

これで解決しました!ありがとう👏🏻–
ローマ

8

プロジェクトにはSwift以外の名前を使用してください。「Swift」は予約されています。


10
この警告も表示されますが、プロジェクトの名前にSwiftという単語がまったく含まれていないため、これは「the」ソリューションではなく、おそらく「a」ソリューションです。そして、いいえ、私は私の問題が何であるかを理解していません。
Andrew Monshizadeh 2014年

1
@AndrewMonshizadeh同じ問題ですが、Swiftへの参照はありませんが、このエラーが発生する前に、1〜2文字しか入力できません。
BytesGuy

1
さらなる調査の結果、のサブクラスでコード補完を使用しようとすると、SourceKitService Terminatedエラーを受け取ると判断しましたUIView
Andrew Monshizadeh 2014年

4
これは問題の原因ではありません。なぜこれが支持されているのか私にはわかりません。
サンタクロース2014年

1
NRitH、Xcode 6ベータ1を使用しているときにこの問題があり、プロジェクトの変更は私にとってはうまくいく修正でした。このエラーを引き起こすバグはおそらく多数あります。Xcodeの新しいバージョンを使用している可能性があり、おそらくそのバグが修正されています。
Marius Fanu 14

8

Xcode 6 Beta 3では、この問題が数秒ごとに発生し、まったく新しいプロジェクトでも継続して発生しました。展開ターゲットを8.0から7.1に変更したところ、停止しました。


5

プロジェクトに名前は付けられていSwiftますか?そのメッセージが表示されると、ビルドも失敗します(<unknown>:0: error: module name "Swift" is reserved for the standard library)。などの別のプロジェクト名を使用してみてくださいSwiftTest。それはうまくいくでしょう。


3

これを修正するために、Swiftコードに奇妙な問題があるかもしれません。たとえば、コピーと貼り付けの最中にいたため、IBOutletの複数の定義があるとします。通常、これは処理できなかった単なる構文エラーです。


2
Xcodeプロジェクトテンプレートの変更されていないコードでこの問題が発生しているため、Swiftコードの問題ではないと思います。
ThomasW

同じ名前の複数のIBOutletが原因である可能性があります。
トニー

3

変数の型を推論するのではなく、明示的に(静的に)入力することで、問題が解決されることがわかりました。


3

Xcodeが開いている場合は終了します。次にターミナルから実行します:

defaults delete com.apple.dt.Xcode

これにより、Xcodeがデフォルト設定に復元されます。Xcodeを開くと、すべてが再び機能するはずです。


2

私(xcode 6.1)の理由は、サブクラスをプロトコルに採用するのを忘れていたからです。

たとえば、これは間違っています:

protocol SomeProtocol { ... }
class A :NSObject, SomeProtocol {
...
}
class B : A {
...
}

そしてこれは大丈夫です:

protocol SomeProtocol { ... }
class A : NSObject, SomeProtocol {
...
}
class B : A, SomeProtocol {
...
}

忘れられたプロトコルで同じ問題がありました。アドバイスありがとうございます。xcodeのリリースバージョンはまだベータ版のように機能しているようです=)
John

ありがとう!私はこれに夢中になっています。あなたの解決策は私の問題を修正しました。私はすべてのサブクラスにプロトコルを追加する必要がありますする奇妙なように、これは修正されることを願っています...
アルビン

1

これらの2行のみで構成されるプログラム(Swift構文の点で誤っている可能性があります)は、ここで「SourceKitService Terminated」エラーを引き起こすのに十分です。

var x = 42
println("Hello", x)

let代わりにvarを使用すると、エディターは通常どおり動作します。Xcodeバージョン6.0(6A215l)


通常、このバグは、Xcodeが特定の構文エラーを処理できない場合(実際のコード内またはビルドの作成中(プロジェクト名に迅速な例がある場合))
Lyndsey Scott

バグはおそらく構文エラーが原因であると私は言っています、そしてあなたのコードは明確な構文エラーを持っているので、それは私の理論と一致しています。
Lyndsey Scott 14

構文エラーへの応答としての「SourceKitService Terminated」は意味がありません。これは私が指摘していたエラーです。これは問題のバグです。
アレクサンダー

はい。それが「バグ」という言葉の意味です。このバグは、構文エラーによって引き起こされたようです。うまくいけば、Appleはすぐに修正するでしょう。
リンジースコット2014

1

今日も同じ問題が発生しました。問題はにありましprintlnた。値を出力するために、古いNSLogスタイルを試しました。

// something like this
println("value = %@", valueObj)

Swiftで文字列を作成する方法は、printfスタイルからインラインスタイルに進化したため、次のように値をフォーマット文字列に直接埋め込みます。

"Here goes \(YOUR_VARIABLE)"

したがって、上記の例の場合、解決策は次のとおりです。

println("value =\(valueObj)")

@downwoterさん、この回答のどこが問題になっていますか?私には良さそうだ。NSLogをSwiftで引き続き使用できることはわかっていますが、printlnはSwift以降の方法です。そして、この答えは直接問題に関係しており、上記の行はSourceKitサービスをクラッシュさせます。
MANIAK_dobrii 14年

私は無名のタプルを印刷しようとしている)(printlnのと同様の問題を持っていた
thisispete

1

ベータ2で作成されたプロジェクトのXcode6ベータ3でも同じ問題が発生しました。

これは、Swift言語の新しい重大な変更、つまり配列宣言構文が原因でした。

ベータ3の重大な変更により影響を受けるコードを確認します。

http://adcdownload.apple.com//Developer_Tools/xcode_6_beta_3_lpw27r/xcode_6_beta_3_release_notes__.pdf

私の場合の例の1つは次のとおりです。

私は変えなければなりませんでした:

var tabBarController : UITabBarController = self.window?.rootViewController as UITabBarController;

var tabBarController : UITabBarController = self.window!.rootViewController as UITabBarController

結論:ソースコードにエラーがあるように見えますが、状況によっては、このエラーはXcodeによって生成されます。

バグが修正されるまでの解決策:エラーを手動で確認してください:)

幸運を!


1

私にとっての解決策は、たまたまシミュレーターを変更することでした。シミュレータにiPhone 5Sを使用していて、それをiPhone 5に切り替えたとき、すべてが完璧に動作しました。うまくいけば、将来のバージョンで完全に修正されるでしょう。


私はiPhone 5シミュレーターが常に最良の選択であることを発見しました。1つおきにクラッシュします
Daniel Galasko

@DanielGalasko興味深い。私は通常iPhone 5Sを使用していますが、それは非常に安定しています。
Fomentia 14年

Xcode 6.1を使用している場合、これは私の理解に向けられています:)
Daniel Galasko

私は自分の声明を撤回しますが、それでもまだ壊れています。5は間違いなく唯一の有効なシミュレータです
Daniel Galasko 2014年

1

端末から派生データを削除すると、次のクラッシュまで問題が解決することがわかりました。:S

次の場所にあります:/ Users / {ユーザー名} / Library / Developer / Xcode / DerivedData / {プロジェクト名}-{ランダムな文字シーケンス}

これがお役に立てば幸いです。


1

私は、これが発生する理由の1つ(おそらく多くあるので)を理解したと思います。

私の場合、次のいずれかに該当するブリッジングヘッダーを介してObjective-Cファイルをインポートしていました。

  1. Objective-Cインポートの実装ファイル(.m)には、アプリターゲットが正しく設定されていませんでした。
  2. Objective-Cファイルには、ヘッダー(.h)ファイルのみがあり、実装(.m)ファイルはありませんでした。(繰り返しますが、これは.hファイルではなく.mファイルでのみターゲットを設定できるため、これは「適切なアプリターゲットがない」セットの一部だと思います)

Objective-Cファイルのアプリターゲットを修正するか、ブリッジヘッダー内のそれらのファイルのインポートをすべて削除すると、問題が解決するようです。

参考:実装(.m)ファイルのないヘッダー(.h)ファイルのターゲットを設定する必要がある場合は、次の簡単な手順に従ってください。Xcode 4.5でターゲットメンバーシップの可視性を変更できない


1

ここにもう1つの潜在的なソリューションを追加するために、誤ってクラスvarに型と同じ名前を付けました:

class var Settings:Settings {
        get { return classVarWorkAround.settings }
    }

これにより、SourceKit FOR SUREがクラッシュします。愚かな構文エラーですが、誰かが同じ間違いを犯した場合に備えて。

編集:@ポートランドランナーによると:

同様に、戻り値の型を関数名に設定すると、エラーが発生します。

func foo() ->foo{}

1
同様に、戻り値の型を関数名に設定すると、エラーが発生します。 func foo() ->foo{} (お気軽に回答に追加してください)
ポートランドランナー

0

このエラーが発生し始めたら、最後に書いたコードをコメントアウトしてしばらく待ちます。構文の強調表示が再び表示されます。これが私が問題を回避する方法です。

    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)
    }

何をしても、システムは自動的に再起動します。この行をコメント化する必要はありません。すぐに再び実行が開始されます。もちろんクラッシュもします。
Maury Markowitz、2014年

0

アップルに報告(#17266321):

詳細:

概要:配列として値を持つディクショナリーを印刷しようとすると、ポップアップが「SourceKitが終了しました。エディターの機能は一時的に制限されています」と表示され続けます。Xcodeは、コンテキスト認識をフリーズして緩め、テキストを黒くします。

再現手順:1.次のように配列を作成します-"var iOSHistoryArray = [" iOS6 "、" iOS7 "、" iOS8 "、]"

  1. 辞書を-"var MacOSYosemiteFeatures:Dictionary = [" Device ":iOSHistoryArray]"として作成します。

  2. 辞書を次のように出力します-"println(" Dictionary contains Array value:%@ \ n "、MacOSYosemiteFeatures)" (<<-原因->)

  3. 手順3では、問題のコメントが発生し、Xcodeが再び機能するようになります。

期待される結果:Xcodeは正常に機能するはずです。

実際の結果:Xcodeが機能しなくなり、コンテキスト認識が失われ(すべてのフォントが失われ、すべてのテキストが真っ黒になります)、Xcode全体が非アクティブになります。

バージョン:バージョン6.0(6A215l)


0

それを試してみてください:

Swiftコンパイラ/インデクサーにバグがあります。コードの一部の行が問題を引き起こしています。Xcodeでプロジェクトを開く前に、他のテキストエディタでコードを編集して、問題のある行をコメント化する必要があります。問題が何なのか見当がつかない場合は、すべてのコードをコメント化してください。プロジェクトを開いたら、CPUアクティビティの増加が問題を発見したことを示すまで、コードを少しずつ戻し始めることができます。


@Pang回答が正しく有効で同じである場合、質問はおそらく重複しているので、投票するかフラグを立てて閉じる必要があります-この場合、これは間違いなく開いたままです
mmmmmm

0

問題:

  • ソースコードにエラーがある場合、「SourceKitService Terminated」ポップアップが表示され、コードの強調表示が機能しなくなります。複数の異なる条件下で発生すると、発生する場合と発生しない場合があります。

私の場合:インストールされたベータ3、OSXのみのプロジェクト、1つのファイルで「半閉範囲演算子が..から.. <に変更されました」というエラーが検出されました。ポップアップが表示され始め、コードの強調表示が失敗し始めます。

解決:

  • Xcodeによって検出されたエラーを修正する
  • ナビゲーターで別の.swiftに変更し、元に戻ります
  • 構文の強調表示が再度表示され、「SourceKitService Terminated」ポップアップが表示されなくなりました


0

私の場合、ブリッジされたヘッダーに不足しているファイルをインポートしました。間違ったインポートを削除した後、エラー通知が消えました。


0

ネストされたObjective-C ++プロジェクトで同じエラーが発生しましたが、Swiftコードを含むFrameworkが含まれています。この問題を修正するには、フレームワークを明示的にビルドする必要がありました。私がやったら、その問題はなくなり、戻ってきません;)


0

xcode 6バージョン6.0(6A313)でも引き続き発生する

  • 新しいプロジェクトを作成する
  • フレームワークとライブラリを追加する
  • ココアタッチフレームワークを選択
  • Swiftファイルを追加する
  • クラスをSwiftファイルに追加する

クラッシュ

PS:新しいMac Mini、以前のXcodeのインストールはなく、エキゾチックなものはありません。おそらくベータ製品だと思います。


0

Xcode 6.1 Beta 3:

typealias Foo = Int1つのSwiftファイルで非プライベートタイプのエイリアス(など)を定義したらすぐに、文字を入力します。c別のファイルにをするとすぐに、SourceKitServiceがクラッシュします。

解決策は、型エイリアスの使用をやめるか、次のベータリリースを待つか、クラス定義に型エイリアスをラップすることです。

public class DummyClass {
    public typealias Foo = String
}

次のように使用します。

var myVar:DummyClass.Foo?

0

展開ターゲットをiOS 8.0に変更するとうまくいきました。誰かがそれを<= 7.1に移動すると効果があると誰かが言ったことを知っていますが、この問題は複数のソースから発生しているようなので、この代替策が機能する可能性があります

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.