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:
ios
swift
xcode
sourcekitservice
Tony
fuente
fuente
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.
fuente
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.Los síntomas que tenía:
Error running playground: Failed prepare for communication with playground.
vea esta imagen en twitter .OS X
aiOS
, recibía otro error (desafortunadamente no lo escribí).SourceKitService Terminated
problema en este hilo.Proceso de depuración
IDEPlaygroundDocument: Error encountered running playground
com.apple.CoreSimulator.CoreSimulatorService[3952]: The runtime for the selected device is not installed.
Lo que hice para corregir este problema.
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
aiOS
.Análisis
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 .
fuente
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
fuente
SourceKitService se bloquea en mi sistema tan pronto como escribo
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:
fuente
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:
Después de eliminar los signos de exclamación y detener así el desenvolvimiento forzado, SourceKitService dejó de fallar.
¡Espero que esto ayude!
fuente
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:
fuente
3.17.1
Use otro nombre que no sea Swift para el proyecto. "Swift" está reservado.
fuente
UIView
.Tuve este problema cada pocos segundos en Xcode 6 Beta 3, y continuó incluso en proyectos completamente nuevos. Cambié el Objetivo de implementación de 8.0 a 7.1 y se detuvo.
fuente
¿Se llama su proyecto
Swift
? Al ver ese mensaje, la construcción también fallaría (<unknown>:0: error: module name "Swift" is reserved for the standard library
). Intente usar otro nombre de proyecto comoSwiftTest
. Funcionaríafuente
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.
fuente
Descubrí que al escribir explícitamente (estáticamente) los tipos de variables, en lugar de inferirlos, resolvió el problema por mí.
fuente
Salga de Xcode si está abierto. Luego, desde la Terminal ejecutar:
Esto restaurará Xcode a la configuración predeterminada. Abra Xcode y todo debería funcionar nuevamente.
fuente
Para mí (xcode 6.1) la razón fue que olvidé adoptar mi subclase al protocolo.
Por ejemplo, esto está mal:
y esto esta bien:
fuente
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í:
Usar en
let
lugar devar
hace que el editor se comporte normalmente de nuevo. Xcode versión 6.0 (6A215l)fuente
Tuve el mismo problema hoy, el problema fue
println
que acabo de probar el viejo estilo NSLog para imprimir un valor: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:
Entonces, para el ejemplo anterior, la solución es:
fuente
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.
http://adcdownload.apple.com//Developer_Tools/xcode_6_beta_3_lpw27r/xcode_6_beta_3_release_notes__.pdf
Uno de los ejemplos en mi caso fue:
Tuve que cambiar:
a
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!
fuente
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.
fuente
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.
fuente
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
fuente
Solo para agregar una solución potencial más aquí, accidentalmente llamé a una clase var con el mismo nombre que su tipo:
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.
fuente
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.
fuente
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)
fuente
Intentalo:
fuente
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:
fuente
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/
fuente
En mi caso, había importado archivos faltantes en el encabezado en puente. Después de eliminar las importaciones incorrectas, la notificación de error desapareció.
fuente
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ó;)
fuente
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.
fuente
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 letrac
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:
y úsalo así:
fuente
Cambiar el objetivo de implementación a iOS 8.0 funcionó para mí. Sé que alguien dijo que moverlo a <= 7.1 funcionó, pero este problema parece provenir de múltiples fuentes, por lo que esta alternativa puede funcionar.
fuente