Tengo un problema con Xcode en el que aparece el error "Servicio de kit de origen terminado" y todo el resaltado de sintaxis y la finalización del código desaparecen en Swift. ¿Cómo puedo arreglar esto?
Aquí hay una imagen de ejemplo:
Tengo un problema con Xcode en el que aparece el error "Servicio de kit de origen terminado" y todo el resaltado de sintaxis y la finalización del código desaparecen en Swift. ¿Cómo puedo arreglar esto?
Aquí hay una imagen de ejemplo:
Respuestas:
La respuesta a la mía (Xcode6-Beta7) fue simplemente eliminar la carpeta de datos derivados.
Preferences > Locations > Derived Data > click the arrow to open in Finder > trash it.
Espero que esto ayude a alguien. Obviamente, hay muchas razones por las que puede ocurrir este bloqueo.
Creo que pude haber encontrado una solución más general. A continuación se detallan los pasos que utilicé para alentar a Xcode a no producir el SourceKitService Terminated
error.
Error running playground: Failed prepare for communication with playground.
vea esta imagen en twitter .OS X
a iOS
, recibía otro error (desafortunadamente no lo escribí).SourceKitService Terminated
problema en este hilo.IDEPlaygroundDocument: Error encountered running playground
com.apple.CoreSimulator.CoreSimulatorService[3952]: The runtime for the selected device is not installed.
Si solo tiene un problema dentro del contexto de un proyecto Swift, intente esto solo primero. Si eso no funciona, intente todos los pasos más abajo.
El proceso más largo e involucrado. (Los primeros 3 pasos no son de ninguna ayuda, pero los hice, y entonces grábelos aquí)
OS X
a iOS
.Parece que el problema es que Xcode6 no puede encontrar y conectarse correctamente al simulador. No he podido determinar por qué este es el caso, pero esto me ha permitido seguir desarrollando con Swift. Esto puede tener que ver con el hecho de que los binarios del simulador parecen haberse movido .
Solo necesita eliminar el "ModuleCache", este es un tipo de caché utilizado por Xcode para Autocompletar.
Copie y pegue la siguiente línea en la Terminal:
rm -rf ~ / Library / Developer / Xcode / DerivedData / ModuleCache
SourceKitService se bloquea en mi sistema tan pronto como escribo
extension foo {
Estoy usando Xcode 6 beta 6 y no importa si lo escribo en un archivo vacío o lo agrego a uno existente. Tan pronto como la fuente contenga un extension
bloque, se bloqueará. Esto sucede incluso en proyectos recién creados.
Mi "solución" es evitar la extensión en las fuentes en las que estoy trabajando actualmente. Comento el final de un bloque de clase y el comienzo del bloque de extensión. Tan pronto como termine mi trabajo en la clase, los comento nuevamente:
class MyClass {
[... my stuff ...]
//}
//
//extension MyClass {
}
Comenzó a suceder en mi proyecto spritekit después de insertar la función touchesMoved. Esta función utiliza el desenvolvimiento forzado, que parece causar el problema:
override func touchesMoved(touches: NSSet!, withEvent event: UIEvent!)
Después de eliminar los signos de exclamación y detener así el desenvolvimiento forzado, SourceKitService dejó de fallar.
¡Espero que esto ayude!
Encontré una solución en los foros de desarrolladores de Apple (que requiere inicio de sesión, así que lo explicaré aquí también).
TLDR : no importe un @protocol
encabezado de puente de Objective-C a Swift que tenga el mismo nombre que un @interface
. Por ejemplo, el SDK de Facebook tiene un protocolo y una interfaz llamada "FBGraphObject".
Aquí está la publicación del foro:
Agregar Facebook SDK hace que SourceKitService se bloquee. Si desea usar beta 3 y necesita Facebook SDK, una solución que encontré y que funciona para mí es refactorizar @protocol FBGraphObject de Facebook SDK y renombrarlo a algo como @protocol FBGraphObjectProtocol como @interface FBGraphObject también existe y aparentemente SourceKit no le gusta
Seguro que es una solución temporal solo para mantenerte funcional y tendrás que usar Cocoapods o construir el SDK de Facebook tú mismo en lugar de usar la biblioteca de framework.
Por el momento, deberá asegurarse de no tener declaraciones conflictivas de @protocol y @interface, y eso incluye bibliotecas de terceros que pueda estar utilizando.
Esto me costó hoy, ¡espero que ayude!
Publicado por e.parto el 10 de julio de 2014
3.17.1
Use otro nombre que no sea Swift para el proyecto. "Swift" está reservado.
UIView
.
Para solucionar esto, puede tener algún problema extraño con su código Swift. Por ejemplo, tener múltiples definiciones de IBOutlets porque estaba en medio de copiar y pegar. generalmente es solo un error de sintaxis que no se pudo manejar.
Salga de Xcode si está abierto. Luego, desde la Terminal ejecutar:
defaults delete com.apple.dt.Xcode
Esto restaurará Xcode a la configuración predeterminada. Abra Xcode y todo debería funcionar nuevamente.
Para mí (xcode 6.1) la razón fue que olvidé adoptar mi subclase al protocolo.
Por ejemplo, esto está mal:
protocol SomeProtocol { ... }
class A :NSObject, SomeProtocol {
...
}
class B : A {
...
}
y esto esta bien:
protocol SomeProtocol { ... }
class A : NSObject, SomeProtocol {
...
}
class B : A, SomeProtocol {
...
}
Un programa que consta solo de estas dos líneas (posiblemente incorrecto en términos de sintaxis Swift) es suficiente para causar el error "SourceKitService Terminated" aquí:
var x = 42
println("Hello", x)
Usar en let
lugar de var
hace que el editor se comporte normalmente de nuevo. Xcode versión 6.0 (6A215l)
Tuve el mismo problema hoy, el problema fue println
que acabo de probar el viejo estilo NSLog para imprimir un valor:
// something like this
println("value = %@", valueObj)
La forma en que debemos componer cadenas en Swift ha evolucionado del estilo printf al estilo en línea, por lo que ahora inserta sus valores directamente en la cadena de formato de esta manera:
"Here goes \(YOUR_VARIABLE)"
Entonces, para el ejemplo anterior, la solución es:
println("value =\(valueObj)")
Tuve el mismo problema con Xcode6 beta 3 para un proyecto creado en beta 2.
Fue debido a nuevos cambios importantes en el lenguaje rápido, es decir, la sintaxis de declaración de matriz.
Verifique el código afectado debido a cambios de última hora en beta 3.
Uno de los ejemplos en mi caso fue:
Tuve que cambiar:
var tabBarController : UITabBarController = self.window?.rootViewController as UITabBarController;
a
var tabBarController : UITabBarController = self.window!.rootViewController as UITabBarController
Conclusión: Parece que si hay un error en el código fuente, en algunas condiciones este error es producido por Xcode.
Solución hasta que se solucione el error: compruebe el error manualmente :)
¡Buena suerte!
La solución para mí fue cambiar el simulador. Estaba usando el iPhone 5S para mi simulador y cuando lo cambié al iPhone 5, todo funcionó a la perfección. Esperemos que una versión futura lo arregle por completo.
Descubrí que eliminar los datos derivados del terminal resuelve el problema hasta el próximo bloqueo. : S
Se encuentra en: / Usuarios / {Nombre de usuario} / Biblioteca / Desarrollador / Xcode / DerivedData / {Nombre del proyecto} - {Secuencia de caracteres aleatorios}
Espero que esto ayude.
Creo que descubrí una (ya que probablemente hay muchas) de las razones por las que esto ocurre.
En mi caso, estaba importando archivos Objective-C a través del Encabezado de puente que tenía uno de los siguientes:
Arreglar los objetivos de la aplicación en los archivos Objective-C O eliminar la importación de esos archivos en el Encabezado de puente todos juntos parece solucionar el problema.
Para su información: si necesita establecer el objetivo de los archivos de encabezado (.h) que no tienen un archivo de implementación (.m), puede seguir estos simples pasos: No puede cambiar la visibilidad de la membresía de destino en Xcode 4.5
Solo para agregar una solución potencial más aquí, accidentalmente llamé a una clase var con el mismo nombre que su tipo:
class var Settings:Settings {
get { return classVarWorkAround.settings }
}
Esto bloqueará SourceKit POR SEGURO. Estúpido error de sintaxis, pero en caso de que alguien más cometa el mismo error.
Editar: también según @Portland Runner:
Del mismo modo, si establece el tipo de retorno al nombre de la función, obtendrá el error.
func foo() ->foo{}
func foo() ->foo{}
(siéntase libre de agregarlo a su respuesta)
Cuando este error comience a aparecer, solo comente el último / reciente fragmento de código que escribió y espere un momento. El resaltado de sintaxis debería reaparecer. Así es como trabajo el problema.
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)
}
Reportado a Apple (# 17266321):
Detalles:
Resumen: si intentamos imprimir un diccionario con valor como una matriz, aparece una ventana emergente que dice: "SourceKit finalizó. La funcionalidad del editor está temporalmente limitada". Xcode Congela y pierde el reconocimiento de contexto haciendo que el texto se ennegrezca.
Pasos para reproducir: 1. Cree una matriz como - "var iOSHistoryArray = [" iOS6 "," iOS7 "," iOS8 ",]"
Cree un diccionario como - "var MacOSYosemiteFeatures: Dictionary = [" Device ": iOSHistoryArray]".
Imprima el diccionario como - "println (" Diccionario que contiene el valor de matriz:% @ \ n ", MacOSYosemiteFeatures)" (<< - Culpable - >>)
El paso 3 provoca el problema al comentar, lo que hace que el Xcode vuelva a funcionar.
Resultados esperados: Xcode debería funcionar normalmente.
Resultados reales: Xcode deja de funcionar, pierde el reconocimiento de contexto (toda la fuente se pierde y todo el texto se vuelve negro), todo Xcode queda inactivo.
Versión: Versión 6.0 (6A215l)
Intentalo:
Hay un error en el compilador / indexador Swift. Algunas líneas o líneas en su código le están dando dificultades. Tendrá que editar su código con algún otro editor de texto para comentar las líneas ofensivas antes de poder abrir ese proyecto con Xcode. Si no tiene idea de cuál es el problema, comente todo su código. Una vez que tenga el proyecto abierto, puede comenzar a recuperar el código poco a poco hasta que el aumento de la actividad de la CPU le indique que ha encontrado el problema.
Problema:
Mi caso: instalado beta 3, solo proyecto OSX, un archivo detectó que el "operador de rango medio cerrado ha cambiado de ... a ... <" error. La ventana emergente comienza a aparecer y el resaltado de código comienza a fallar.
Solución:
En xcode, vaya a su barra de menú >> ventana >> dispositivos (shift + cmd + 2) aparecerá una nueva ventana, y en la parte inferior izquierda, agregue un nuevo simulador, específicamente uno que se ejecute en iOS 8.0 a la edición de lista existente : es posible que deba reiniciar xcode
referencia: http://www.reddit.com/r/swift/comments/2bznfo/error_running_playground_unable_to_find_suitable/
Tuve el mismo error con el proyecto Objective-C ++ anidado que ahora incluye Framework con código Swift. Para solucionar este problema, tuve que construir explícitamente el marco. Una vez que lo hice, ese problema desapareció y no regresó;)
Sigue sucediendo con xcode 6 versión 6.0 (6A313)
Choques
ps: nuevo mac mini, sin instalaciones previas de xcode, nada exótico. Solo un producto beta, supongo.
Xcode 6.1 Beta 3:
Tan pronto como defina un alias de tipo no privado (p typealias Foo = Int
. Ej. ) En un archivo Swift, escriba la letra c
en otro archivo que se bloquea SourceKitService.
La solución es renunciar al uso de alias de tipo, esperar la próxima versión beta o ajustar sus alias de tipo en las definiciones de clase:
public class DummyClass {
public typealias Foo = String
}
y úsalo así:
var myVar:DummyClass.Foo?