Estou tendo um problema com o Xcode em que o erro "Serviço do kit de origem finalizado" está aparecendo e todos os realces de sintaxe e conclusão de código desaparecem no Swift. Como posso consertar isso?
Aqui está um exemplo de imagem:
Estou tendo um problema com o Xcode em que o erro "Serviço do kit de origem finalizado" está aparecendo e todos os realces de sintaxe e conclusão de código desaparecem no Swift. Como posso consertar isso?
Aqui está um exemplo de imagem:
Respostas:
A resposta para a minha (Xcode6-Beta7) foi simplesmente excluir a pasta Dados Derivados.
Preferences > Locations > Derived Data > click the arrow to open in Finder > trash it.
Espero que isso ajude alguém. Obviamente, existem muitas razões pelas quais essa falha pode ocorrer.
Acredito que posso ter encontrado uma solução de propósito mais geral. Abaixo estão as etapas que eu usei para incentivar o Xcode a não produzir o SourceKitService Terminated
erro.
Error running playground: Failed prepare for communication with playground.
veja esta imagem no twitter .OS X
para iOS
, recebia outro erro (infelizmente não o escrevi).SourceKitService Terminated
problema neste segmento.IDEPlaygroundDocument: Error encountered running playground
com.apple.CoreSimulator.CoreSimulatorService[3952]: The runtime for the selected device is not installed.
Se você está tendo apenas um problema no contexto de um projeto Swift, tente fazer isso sozinho primeiro. Se isso não funcionar, tente todas as etapas abaixo.
O processo mais demorado e envolvido. (Os três primeiros passos não são de certeza úteis, mas eu os fiz e grave-os aqui)
OS X
para iOS
.Parece que o problema está no fato de o Xcode6 não conseguir encontrar e conectar-se adequadamente ao simulador. Não consegui determinar por que esse é o caso, mas isso me permitiu continuar desenvolvendo com o Swift. Isso pode ter a ver com o fato de os binários do simulador parecerem ter se movido .
Você só precisa excluir o "ModuleCache", esse é um tipo de cache usado pelo Xcode para preenchimento automático.
Copie e cole a seguinte linha no Terminal:
rm -rf ~ / Biblioteca / Desenvolvedor / Xcode / DerivedData / ModuleCache
O SourceKitService falha no meu sistema assim que digito
extension foo {
Estou usando o Xcode 6 beta 6 e não importa se eu o digito em um arquivo vazio ou o adiciono a um existente. Assim que a fonte contiver um extension
bloco, ela travará. Isso acontece mesmo em projetos recém-criados.
Minha "solução" é evitar a extensão nas fontes em que estou trabalhando atualmente. Comento o final de um bloco de classes e o início do bloco de extensão. Assim que termino meu trabalho na classe, comento-os novamente:
class MyClass {
[... my stuff ...]
//}
//
//extension MyClass {
}
Começou a acontecer no meu projeto de spritekit depois de inserir a função touchesMoved-. Esta função usa desembrulhar forçado, o que parece causar o problema:
override func touchesMoved(touches: NSSet!, withEvent event: UIEvent!)
Após remover os pontos de exclamação e interromper o desembrulhamento forçado, o SourceKitService parou de funcionar.
Espero que isto ajude!
Encontrei uma solução nos Fóruns de desenvolvedores da Apple (que requer login, por isso também explicarei aqui).
TLDR : não importe um @protocol
no cabeçalho de ponte Objective-C to Swift que seja o mesmo que um@interface
. Por exemplo, o SDK do Facebook possui um protocolo e uma interface denominada "FBGraphObject".
Aqui está o post do fórum:
A adição do SDK do Facebook causa uma falha no SourceKitService. Se você deseja usar a versão beta 3 e precisa do SDK do Facebook, uma solução que encontrei e está funcionando para mim é refatorar o @protocol FBGraphObject do Facebook SDK e renomeá-lo para algo como @protocol FBGraphObjectProtocol como @protocol FBGraphObjectProtocol como @interface FBGraphObject também existe e aparentemente o SourceKit não gosta disso.
Com certeza, é uma solução temporária apenas para mantê-lo funcional e você precisará usar o Cocoapods ou criar o SDK do Facebook por conta própria, em vez de usar a biblioteca de estrutura.
Por enquanto, você precisará se certificar de que não possui declarações @protocol e @interface conflitantes e isso inclui bibliotecas de terceiros que você pode estar usando.
Isso me custou hoje, espero que ajude!
Publicado por e.parto em 10 de julho de 2014
3.17.1
Use outro nome que não seja Swift para o projeto. "Swift" está reservado.
UIView
.
Para corrigir isso, você pode ter algum problema estranho com seu código Swift. Por exemplo, tendo várias definições de IBOutlets porque você estava no meio de copiar e colar. geralmente é apenas um erro de sintaxe que não pôde ser tratado.
Saia do Xcode se estiver aberto. Em seguida, no Terminal, execute:
defaults delete com.apple.dt.Xcode
Isso restaurará o Xcode para as configurações padrão. Abra o Xcode e tudo deve funcionar novamente.
Para mim (xcode 6.1), o motivo foi que eu esqueci de adotar minha subclasse ao protocolo.
Por exemplo, isso está errado:
protocol SomeProtocol { ... }
class A :NSObject, SomeProtocol {
...
}
class B : A {
...
}
e está tudo bem:
protocol SomeProtocol { ... }
class A : NSObject, SomeProtocol {
...
}
class B : A, SomeProtocol {
...
}
Um programa que consiste apenas dessas duas linhas (possivelmente erradas em termos de sintaxe Swift) é suficiente para causar o erro "SourceKitService Terminated" aqui:
var x = 42
println("Hello", x)
Usar em let
vez de var
faz com que o editor se comporte normalmente novamente. Xcode versão 6.0 (6A215l)
Tenho o mesmo problema hoje, o problema era println
: eu apenas tentei o antigo estilo NSLog para imprimir um valor:
// something like this
println("value = %@", valueObj)
A maneira como devemos compor as strings no swift evoluiu do estilo printf para o estilo embutido, então agora você incorpora seus valores diretamente na string de formato da seguinte maneira:
"Here goes \(YOUR_VARIABLE)"
Portanto, para o exemplo acima, a solução é:
println("value =\(valueObj)")
Eu tive o mesmo problema com o Xcode6 beta 3 para um projeto criado na beta 2.
Foi por causa de novas mudanças na linguagem rápida, isto é, sintaxe de declaração de matriz.
Verifique o código efetuado devido a alterações na versão beta 3.
Um dos exemplos no meu caso foi:
Eu tive que mudar:
var tabBarController : UITabBarController = self.window?.rootViewController as UITabBarController;
para
var tabBarController : UITabBarController = self.window!.rootViewController as UITabBarController
Conclusão: Parece que, se houver um erro no código fonte, em algumas condições esse erro é produzido pelo Xcode.
Solução até que o bug seja corrigido: verifique o erro manualmente :)
Boa sorte!
A solução para mim foi mudar o simulador. Eu estava usando o iPhone 5S no meu simulador e quando mudei para o iPhone 5, tudo funcionou perfeitamente. Espero que uma versão futura o conserte completamente.
Eu acho que descobri um (como provavelmente há muitos) dos motivos pelos quais isso ocorre.
No meu caso, eu estava importando arquivos Objective-C por meio do Bridging Header que tinha uma das seguintes verdadeiras:
Corrigir os destinos do aplicativo nos arquivos Objective-C OU remover a importação desses arquivos no cabeçalho de ponte todos juntos parece corrigir o problema.
FYI - Se você precisar definir o destino dos arquivos de cabeçalho (.h) que não possuem arquivo de implementação (.m), siga estas etapas simples: Não é possível alterar a visibilidade da associação de destino no Xcode 4.5
Apenas para adicionar mais uma solução em potencial aqui, eu acidentalmente nomeei uma classe var com o mesmo nome do tipo:
class var Settings:Settings {
get { return classVarWorkAround.settings }
}
Isso irá travar o SourceKit DE CERTEZA. Erro de sintaxe estúpido, mas no caso de mais alguém cometer o mesmo erro.
Edit: também de acordo com o @Portland Runner:
Da mesma forma, se você definir o tipo de retorno como o nome da função, receberá o erro.
func foo() ->foo{}
func foo() ->foo{}
(sinta-se livre para adicioná-lo em sua resposta)
Quando esse erro começar a aparecer, apenas comente o último / código recente que você escreveu e aguarde um pouco. O realce da sintaxe deve reaparecer. É assim que eu trabalho em torno do 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)
}
Relatado à Apple (# 17266321):
Detalhes:
Resumo: Se tentarmos imprimir um dicionário com valor como uma matriz, um pop-up continuará sendo exibido dizendo: "SourceKit finalizado. Funcionalidade do editor temporalmente limitada". Xcode Congela e perde o reconhecimento de contexto, causando o escurecimento do texto.
Etapas para reproduzir: 1. Crie uma matriz como - "var iOSHistoryArray = [" iOS6 "," iOS7 "," iOS8 ",]"
Crie um dicionário como - "var MacOSYosemiteFeatures: Dictionary = [" Device ": iOSHistoryArray]".
Imprima o dicionário como - "println (" Dicionário que contém o valor da matriz:% @ \ n ", MacOSYosemiteFeatures)" (<< - Culprit - >>)
A etapa 3 faz com que o problema seja comentado, o que torna o Xcode funcional novamente.
Resultados esperados: O Xcode deve funcionar normalmente.
Resultados reais: o Xcode fica inoperante, perde o reconhecimento de contexto (toda a fonte é perdida e todo o texto fica em preto puro), todo o Xcode fica inativo.
Versão: Versão 6.0 (6A215l)
Tente:
Há um erro no compilador / indexador Swift. Algumas linhas do seu código estão dificultando. Você terá que editar seu código com algum outro editor de texto para comentar as linhas ofensivas antes de poder abrir esse projeto com o Xcode. Se você não tem idéia do problema, comente todo o seu código. Depois que o projeto estiver aberto, você poderá começar a recuperar o código pouco a pouco até que o aumento da atividade da CPU indique que você encontrou o problema.
Problema:
Meu caso: Instalado o beta 3, projeto apenas do OSX, um arquivo detectou o erro "o operador de intervalo semi-fechado foi alterado de .. para .. <". O pop-up começa a aparecer e o realce do código começa a falhar.
Solução:
No xcode, vá para a barra de menu >> janela >> dispositivos (shift + cmd + 2) uma nova janela será exibida e, no canto inferior esquerdo, adicione um novo simulador, especificamente um em execução no iOS 8.0 à edição da lista existente : pode ser necessário reiniciar o xcode
referência: http://www.reddit.com/r/swift/comments/2bznfo/error_running_playground_unable_to_find_suitable/
Eu tive o mesmo erro com o projeto Objective-C ++ aninhado que agora inclui Framework com código Swift. Para corrigir esse problema, tive que construir explicitamente a estrutura. Uma vez que eu fiz esse problema se foi, e não volta;)
Ainda acontecendo com o xcode 6 Versão 6.0 (6A313)
Crashes
ps: novo mac mini, sem instalação anterior do xcode, nada de exótico. Apenas um produto beta, suponho.
Xcode 6.1 Beta 3:
Assim que você definir um alias de tipo não particular (por exemplo typealias Foo = Int
) em um arquivo Swift, digite a letra c
em outro arquivo, o SourceKitService trava.
A solução é renunciar ao uso de aliases de tipo, aguardar a próxima versão beta ou agrupar seus aliases de tipo nas definições de classe:
public class DummyClass {
public typealias Foo = String
}
e use-o assim:
var myVar:DummyClass.Foo?