Saya mengalami masalah dengan Xcode di mana kesalahan "Source Kit Service Terminated" muncul dan semua penyorotan sintaksis dan penyelesaian kode hilang di Swift. Bagaimana saya bisa memperbaikinya?
Berikut adalah contoh gambar:
Saya mengalami masalah dengan Xcode di mana kesalahan "Source Kit Service Terminated" muncul dan semua penyorotan sintaksis dan penyelesaian kode hilang di Swift. Bagaimana saya bisa memperbaikinya?
Berikut adalah contoh gambar:
Jawaban:
Jawaban saya (Xcode6-Beta7) adalah dengan menghapus folder Derived Data.
Preferences > Locations > Derived Data > click the arrow to open in Finder > trash it.
Semoga ini bisa membantu seseorang. Jelas ada banyak alasan mengapa crash ini dapat terjadi.
Saya percaya saya mungkin telah menemukan solusi tujuan yang lebih umum. Di bawah ini adalah langkah-langkah yang saya gunakan untuk mendorong Xcode agar tidak menghasilkan SourceKitService Terminated
kesalahan.
Error running playground: Failed prepare for communication with playground.
Lihat gambar ini di twitter .OS X
ke iOS
, saya akan menerima kesalahan lain (sayangnya saya tidak menuliskannya).SourceKitService Terminated
masalah di utas ini.IDEPlaygroundDocument: Error encountered running playground
com.apple.CoreSimulator.CoreSimulatorService[3952]: The runtime for the selected device is not installed.
Jika Anda hanya mengalami masalah dalam konteks proyek Swift, coba ini sendiri terlebih dahulu. Jika itu tidak berhasil, cobalah semua langkah selanjutnya di bawah ini.
Proses lebih panjang dan terlibat. (3 langkah pertama tentu saja tidak membantu, tapi saya berhasil, jadi catat di sini)
OS X
ke iOS
.Tampaknya masalahnya adalah dengan Xcode6 tidak dapat menemukan, dan menghubungkan, ke simulator dengan benar. Saya belum dapat menentukan mengapa ini terjadi, tetapi ini telah memungkinkan saya untuk terus berkembang bersama Swift. Ini mungkin ada hubungannya dengan fakta bahwa biner simulator tampaknya telah bergerak .
Anda hanya perlu menghapus "ModuleCache", ini adalah semacam cache yang digunakan oleh Xcode untuk Pelengkapan Otomatis.
Salin dan tempel baris berikut di Terminal:
rm -rf ~ / Library / Developer / Xcode / DerivedData / ModuleCache
SourceKitService lumpuh di sistem saya segera setelah saya mengetik
extension foo {
Saya menggunakan Xcode 6 beta 6 dan tidak masalah jika saya mengetiknya di file kosong atau menambahkannya ke yang sudah ada. Segera setelah sumber berisi satu extension
blok, ia akan mogok. Ini terjadi bahkan pada proyek yang baru dibuat.
"Solusi" saya adalah menghindari ekstensi pada sumber yang sedang saya kerjakan. Saya berkomentar akhir blok kelas dan awal blok ekstensi. Segera setelah saya menyelesaikan pekerjaan saya di kelas, saya berkomentar lagi:
class MyClass {
[... my stuff ...]
//}
//
//extension MyClass {
}
Itu mulai terjadi pada proyek spritekit saya setelah memasukkan fungsi touchesMoved. Fungsi ini menggunakan pembatalan paksa, yang tampaknya menyebabkan masalah:
override func touchesMoved(touches: NSSet!, withEvent event: UIEvent!)
Setelah menghapus tanda seru dan dengan demikian menghentikan pembongkaran paksa, SourceKitService berhenti menabrak.
Semoga ini membantu!
Saya menemukan solusi di Forum Pengembang Apple (yang memerlukan login, jadi saya akan menjelaskannya di sini juga).
TLDR : Jangan mengimpor @protocol
header Objective-C ke Swift bridging Anda yang dinamai sama dengan@interface
. Misalnya, SDK Facebook memiliki protokol dan antarmuka bernama "FBGraphObject".
Inilah pos forum:
Menambahkan Facebook SDK menyebabkan SourceKitService mogok. Jika Anda ingin menggunakan beta 3 dan Anda memerlukan Facebook SDK, satu pekerjaan di sekitar yang saya temukan dan yang bekerja untuk saya adalah refactoring FBGraphObject Facebook SDK dan mengubah nama menjadi sesuatu seperti @protocol FBGraphObjectProtocol sebagai @interface FBGraphObject juga ada dan ternyata SourceKit tidak suka itu
Ini jelas merupakan solusi sementara hanya untuk membuat Anda tetap berfungsi dan Anda harus menggunakan Cocoapods atau membuat Facebook SDK sendiri daripada menggunakan framework framework.
Untuk saat ini, Anda harus memastikan bahwa Anda tidak memiliki deklarasi @protocol dan @interface yang bertentangan dan itu termasuk perpustakaan pihak ketiga yang mungkin Anda gunakan.
Ini biaya saya hari ini, semoga membantu!
Diposting oleh e.parto pada 10 Juli 2014
3.17.1
Gunakan nama lain selain Swift untuk proyek tersebut. "Swift" dicadangkan.
UIView
.
Untuk memperbaikinya, Anda mungkin memiliki masalah aneh dengan kode Swift Anda. Misalnya memiliki beberapa definisi IBOutlets karena Anda sedang menyalin dan menempel. biasanya itu hanya kesalahan sintaks yang tidak bisa ditangani.
Keluar Xcode jika terbuka. Kemudian dari Terminal:
defaults delete com.apple.dt.Xcode
Ini akan mengembalikan Xcode ke pengaturan default. Buka Xcode dan semuanya akan berfungsi lagi.
Bagi saya (xcode 6.1) alasannya adalah saya lupa mengadopsi subclass ke protokol.
Misalnya ini salah:
protocol SomeProtocol { ... }
class A :NSObject, SomeProtocol {
...
}
class B : A {
...
}
dan ini ok:
protocol SomeProtocol { ... }
class A : NSObject, SomeProtocol {
...
}
class B : A, SomeProtocol {
...
}
Sebuah program yang hanya terdiri dari dua baris ini (mungkin salah dalam hal sintaks Swift) sudah cukup untuk menyebabkan kesalahan "SourceKitService Terminated" di sini:
var x = 42
println("Hello", x)
Menggunakan let
alih-alih var
membuat editor berperilaku normal lagi. Xcode versi 6.0 (6A215l)
Punya masalah yang sama hari ini, masalahnya adalah println
, saya hanya mencoba gaya NSLog lama untuk mencetak nilai:
// something like this
println("value = %@", valueObj)
Cara kami menyusun string dalam swift telah berkembang dari gaya printf ke gaya inline, jadi sekarang Anda menyematkan nilai-nilai Anda langsung ke string format seperti ini:
"Here goes \(YOUR_VARIABLE)"
Jadi, untuk contoh di atas solusinya adalah:
println("value =\(valueObj)")
Saya memiliki masalah yang sama dengan Xcode6 beta 3 untuk proyek yang dibuat dalam beta 2.
Itu karena perubahan melanggar baru dalam bahasa cepat yaitu sintaks deklarasi array.
Periksa kode yang terpengaruh karena melanggar perubahan dalam beta 3.
Salah satu contoh dalam kasus saya adalah:
Saya harus berubah:
var tabBarController : UITabBarController = self.window?.rootViewController as UITabBarController;
untuk
var tabBarController : UITabBarController = self.window!.rootViewController as UITabBarController
Kesimpulan: Sepertinya ada kesalahan dalam kode sumber, dalam beberapa kondisi kesalahan ini dihasilkan oleh Xcode.
Solusi sampai bug diperbaiki: Periksa kesalahan secara manual :)
Semoga berhasil!
Solusi bagi saya adalah mengubah simulator. Saya menggunakan iPhone 5S untuk simulator saya dan ketika saya beralih ke iPhone 5, semuanya bekerja dengan sempurna. Semoga versi masa depan akan memperbaikinya sama sekali.
Saya pikir saya menemukan satu (karena mungkin ada banyak) alasan ini terjadi.
Dalam kasus saya, saya mengimpor file Objective-C melalui Bridging Header yang memiliki salah satu dari yang berikut ini benar:
Memperbaiki target aplikasi pada file Objective-C ATAU menghapus impor file-file itu di Bridging Header secara bersamaan tampaknya memperbaiki masalah tersebut.
FYI - Jika Anda perlu menetapkan target file Header (.h) yang tidak memiliki file Implementasi (.m), Anda dapat mengikuti langkah-langkah sederhana ini: Tidak dapat mengubah visibilitas keanggotaan target di Xcode 4.5
Hanya untuk menambahkan satu lagi solusi potensial di sini, saya tidak sengaja memberi nama kelas var dengan nama yang sama dengan itu:
class var Settings:Settings {
get { return classVarWorkAround.settings }
}
Ini akan menyebabkan SourceKit PASTI PASTI. Kesalahan sintaksis bodoh, tetapi kalau-kalau ada orang lain yang membuat kesalahan yang sama.
Sunting: juga menurut @Portland Runner:
Demikian pula, Jika Anda mengatur jenis kembali ke nama func Anda akan mendapatkan kesalahan.
func foo() ->foo{}
func foo() ->foo{}
(jangan ragu untuk menambahkannya ke jawaban Anda)
Ketika kesalahan ini mulai bermunculan, komentar saja bagian terakhir / terakhir dari kode yang Anda tulis dan tunggu sebentar. Penyorotan sintaksis akan muncul kembali. Inilah cara saya mengatasi masalah.
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)
}
Dilaporkan ke Apple (# 17266321):
Detail:
Rangkuman: Jika kami mencoba untuk mencetak kamus dengan nilai sebagai array, sembulan sembulan akan muncul - "SourceKit dihentikan. Fungsionalitas editor temporaly terbatas". Xcode Membeku dan kehilangan pengenalan konteks yang menyebabkan teks menjadi menghitam.
Langkah-langkah untuk Mereproduksi: 1. Buat array sebagai - "var iOSHistoryArray = [" iOS6 "," iOS7 "," iOS8 ",]"
Buat kamus sebagai - "var MacOSYosemiteFeatures: Dictionary = [" Device ": iOSHistoryArray]".
Cetak kamus sebagai - "println (" Kamus yang mengandung nilai Array:% @ \ n ", MacOSYosemiteFeatures)" (<< - Culprit - >>)
Langkah 3 menyebabkan masalah komentar yang membuat Xcode berfungsi kembali.
Hasil yang Diharapkan: Xcode harus berfungsi secara normal.
Hasil Aktual: Xcode menjadi tidak berfungsi, kehilangan pengenalan konteks (Semua font hilang dan semua teks menjadi hitam polos), seluruh Xcode menjadi tidak aktif.
Versi: Versi 6.0 (6A215l)
Cobalah:
Ada bug di kompiler / pengindeks Swift. Beberapa baris atau baris dalam kode Anda memberikan kesulitan. Anda harus mengedit kode Anda dengan editor teks lain untuk mengomentari baris yang menyinggung sebelum Anda dapat membuka proyek itu dengan Xcode. Jika Anda tidak tahu apa masalahnya, beri komentar semua kode Anda. Setelah proyek terbuka, Anda dapat mulai mengembalikan kode sedikit demi sedikit hingga peningkatan aktivitas CPU memberi tahu Anda bahwa Anda telah menemukan masalahnya.
Masalah:
Kasus saya: Menginstal beta 3, hanya proyek OSX, satu file mendeteksi "operator rentang setengah tertutup telah berubah dari .. menjadi .. <" kesalahan. Munculan mulai muncul dan penyorotan kode mulai gagal.
Larutan:
Dalam xcode, buka bilah menu >> jendela >> perangkat Anda (shift + cmd + 2) jendela baru akan muncul, dan di kiri bawah, tambahkan simulator baru, khususnya yang berjalan di iOS 8.0 untuk mengedit daftar yang ada : Anda mungkin perlu me-restart xcode
refrence: http://www.reddit.com/r/swift/comments/2bznfo/error_running_playground_unable_to_find_suitable/
Saya memiliki kesalahan yang sama dengan proyek Objective-C ++ bersarang yang sekarang termasuk Kerangka dengan kode Swift. Untuk memperbaiki masalah ini, saya harus membangun kerangka kerja secara eksplisit. Setelah saya melakukan masalah itu hilang, dan tidak kembali;)
Masih terjadi dengan xcode 6 Versi 6.0 (6A313)
Kecelakaan
ps: mini mac baru, tidak ada instalasi xcode sebelumnya, tidak ada yang eksotis. Kurasa hanya produk beta.
Xcode 6.1 Beta 3:
Segera setelah Anda mendefinisikan alias tipe non-pribadi (misalnya typealias Foo = Int
) dalam satu file Swift, ketikkan huruf c
dalam file lain yang SourceKitService lumpuh.
Solusi baik mengundurkan diri dari menggunakan alias tipe, menunggu rilis beta berikutnya atau bungkus alias tipe Anda dalam definisi kelas:
public class DummyClass {
public typealias Foo = String
}
dan gunakan seperti ini:
var myVar:DummyClass.Foo?