Xcodeに問題があり、「ソースキットサービスが終了しました」というエラーが表示され、Swiftですべての構文の強調表示とコードの補完が行われません。どうすれば修正できますか?
以下は画像の例です。
Xcodeに問題があり、「ソースキットサービスが終了しました」というエラーが表示され、Swiftですべての構文の強調表示とコードの補完が行われません。どうすれば修正できますか?
以下は画像の例です。
回答:
私の答え(Xcode6-Beta7)は、単にDerived Dataフォルダーを削除することでした。
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〜/ライブラリ/ Developer / Xcode / DerivedData / ModuleCache
入力するとすぐにSourceKitServiceがシステムでクラッシュする
extension foo {
Xcode 6ベータ6を使用しています。空のファイルに入力するか、既存のファイルに追加するかは関係ありません。ソースに1つのextension
ブロックが含まれるとすぐにクラッシュします。これは、新しく作成されたプロジェクトでも発生します。
私の「解決策」は、現在取り組んでいるソースの拡張を避けることです。クラスブロックの終わりと拡張ブロックの始まりをコメント化します。クラスでの作業が終了したらすぐに、もう一度コメントします。
class MyClass {
[... my stuff ...]
//}
//
//extension MyClass {
}
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日の投稿
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 {
...
}
これらの2行のみで構成されるプログラム(Swift構文の点で誤っている可能性があります)は、ここで「SourceKitService Terminated」エラーを引き起こすのに十分です。
var x = 42
println("Hello", x)
のlet
代わりにvar
を使用すると、エディターは通常どおり動作します。Xcodeバージョン6.0(6A215l)
今日も同じ問題が発生しました。問題はにありましprintln
た。値を出力するために、古いNSLogスタイルを試しました。
// something like this
println("value = %@", valueObj)
Swiftで文字列を作成する方法は、printfスタイルからインラインスタイルに進化したため、次のように値をフォーマット文字列に直接埋め込みます。
"Here goes \(YOUR_VARIABLE)"
したがって、上記の例の場合、解決策は次のとおりです。
println("value =\(valueObj)")
ベータ2で作成されたプロジェクトのXcode6ベータ3でも同じ問題が発生しました。
これは、Swift言語の新しい重大な変更、つまり配列宣言構文が原因でした。
ベータ3の重大な変更により影響を受けるコードを確認します。
私の場合の例の1つは次のとおりです。
私は変えなければなりませんでした:
var tabBarController : UITabBarController = self.window?.rootViewController as UITabBarController;
に
var tabBarController : UITabBarController = self.window!.rootViewController as UITabBarController
結論:ソースコードにエラーがあるように見えますが、状況によっては、このエラーはXcodeによって生成されます。
バグが修正されるまでの解決策:エラーを手動で確認してください:)
幸運を!
私にとっての解決策は、たまたまシミュレーターを変更することでした。シミュレータにiPhone 5Sを使用していて、それをiPhone 5に切り替えたとき、すべてが完璧に動作しました。うまくいけば、将来のバージョンで完全に修正されるでしょう。
私は、これが発生する理由の1つ(おそらく多くあるので)を理解したと思います。
私の場合、次のいずれかに該当するブリッジングヘッダーを介してObjective-Cファイルをインポートしていました。
Objective-Cファイルのアプリターゲットを修正するか、ブリッジヘッダー内のそれらのファイルのインポートをすべて削除すると、問題が解決するようです。
参考:実装(.m)ファイルのないヘッダー(.h)ファイルのターゲットを設定する必要がある場合は、次の簡単な手順に従ってください。Xcode 4.5でターゲットメンバーシップの可視性を変更できない
ここにもう1つの潜在的なソリューションを追加するために、誤ってクラスvarに型と同じ名前を付けました:
class var Settings:Settings {
get { return classVarWorkAround.settings }
}
これにより、SourceKit FOR SUREがクラッシュします。愚かな構文エラーですが、誰かが同じ間違いを犯した場合に備えて。
編集:@ポートランドランナーによると:
同様に、戻り値の型を関数名に設定すると、エラーが発生します。
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)
}
アップルに報告(#17266321):
詳細:
概要:配列として値を持つディクショナリーを印刷しようとすると、ポップアップが「SourceKitが終了しました。エディターの機能は一時的に制限されています」と表示され続けます。Xcodeは、コンテキスト認識をフリーズして緩め、テキストを黒くします。
再現手順:1.次のように配列を作成します-"var iOSHistoryArray = [" iOS6 "、" iOS7 "、" iOS8 "、]"
辞書を-"var MacOSYosemiteFeatures:Dictionary = [" Device ":iOSHistoryArray]"として作成します。
辞書を次のように出力します-"println(" Dictionary contains Array value:%@ \ n "、MacOSYosemiteFeatures)" (<<-原因->)
手順3では、問題のコメントが発生し、Xcodeが再び機能するようになります。
期待される結果:Xcodeは正常に機能するはずです。
実際の結果:Xcodeが機能しなくなり、コンテキスト認識が失われ(すべてのフォントが失われ、すべてのテキストが真っ黒になります)、Xcode全体が非アクティブになります。
バージョン:バージョン6.0(6A215l)
それを試してみてください:
Swiftコンパイラ/インデクサーにバグがあります。コードの一部の行が問題を引き起こしています。Xcodeでプロジェクトを開く前に、他のテキストエディタでコードを編集して、問題のある行をコメント化する必要があります。問題が何なのか見当がつかない場合は、すべてのコードをコメント化してください。プロジェクトを開いたら、CPUアクティビティの増加が問題を発見したことを示すまで、コードを少しずつ戻し始めることができます。
問題:
私の場合:インストールされたベータ3、OSXのみのプロジェクト、1つのファイルで「半閉範囲演算子が..から.. <に変更されました」というエラーが検出されました。ポップアップが表示され始め、コードの強調表示が失敗し始めます。
解決:
xcodeで、メニューバー>>ウィンドウ>>デバイス(shift + cmd + 2)に移動し、新しいウィンドウがポップアップします。左下に、新しいシミュレーター、具体的にはiOS 8.0で実行されているものを既存のリストに追加しますedit :xcodeを再起動する必要があるかもしれません
屈折:http : //www.reddit.com/r/swift/comments/2bznfo/error_running_playground_unable_to_find_suitable/