Talvez seja apenas eu experimentando um "recurso" tão irritante:
Após a atualização do Xcode 6.0.1 para o Xcode 6.1, as coisas mudaram. O Xcode 6.1 está sempre indexando o projeto ou compilando os arquivos fonte. O projeto não é grande. Ele contém apenas um monte de arquivos Swift e AWS SDK 2.0 Cocoapods no espaço de trabalho. Não acho que isso deva impedir que o todo seja indexado e compilado sem problemas. Eu tentei com alguns aws-sdk-ios-samples, só para ver como o Xcode 6.1 funciona neles, e acabou ficando do mesmo jeito para sempre.
Que soluções tentei até agora:
- Excluindo "Dados Derivados" no Organizer e reabra um espaço de trabalho. (falha ao consertar)
- "Mostrar conteúdo do pacote" no arquivo .xcodeproj e excluir .xcworkspace como em ( Xcode 4 - desempenho lento )
Nenhum deles funcionou, infelizmente.
PS: talvez eu deva tentar recriar o projeto? Configurações do meu computador: MacBook Pro (Retina, 13 polegadas, meados de 2014), Memória 8 GB 1600 MHz DDR3, com Yosemite. (Acho que isso é o suficiente para executar este pequeno projeto.)
Respostas:
Tentei muitas das sugestões acima, incluindo divisão de arquivos, instalação do Xcode 6.2 beta e quebra de instruções de concatenação de strings. O que finalmente funcionou para mim foi dividir em várias
.append
instruções uma matriz de declaração literal de dicionários que eu estava usando para dados de teste .Além disso, pelo que vale a pena, a sexta entrada nesta matriz é o que causa o problema para mim; cinco funcionam bem.
fonte
init()
passo a passo funciona perfeitamente. Vale a pena mencionar que tive que deletar o.xcworkspace
arquivo também.A única solução de trabalho para mim é excluir todos os dados derivados (não apenas para o projeto atual, apenas limpar a pasta inteira) e, em seguida, reiniciar o Xcode.
Abrir arquivo / preferências no Xcode
Clique em Locais na extrema direita da janela pop-up
Clique no pequeno ícone de seta ao lado de "/Users/Mac/Library/Developer/Xcode/DerivedData".... leva você a uma pasta Xcode que contém uma pasta DerivedData (que contém todos os dados derivados de seus projetos anteriores .)
DELETE a pasta DerivedData
fonte
Você está usando CocoaPods? Encontrei o mesmo problema hoje cedo. (Usando xCode 6.1.1)
Para corrigir o problema, excluí tudo em
~/Library/Developer/Xcode/DerivedData
, aPods
pasta no diretório do meu projeto e<project>.xcworkspace
.Em seguida, abri o terminal, naveguei até o diretório do meu projeto e executei
pod install
novamente.fonte
Tive o mesmo problema hoje. Xcode 6.3.2, projeto Swift de tamanho médio. Em um ponto, ele começou a indexar e nunca iria terminar de indexar. O código que causou isso foi um dicionário do tipo [String: [String]], portanto, um dicionário de chave de string com arrays de string como valores. Eu tinha dois deles com chaves de A a Z e cada uma dessas 26 entradas contém uma matriz de string com 5 a 10 strings.
Limpar dados derivados não ajudou. Apenas comentar esses dictos o fez ir de novo.
Honestamente, isso é ridículo! A Apple precisa consertar o Xcode! Já é terrivelmente lento ao compilar projetos Swift, mas bugs como este são um obstáculo. Não consigo fazer meu trabalho direito com isso!
fonte
Para aqueles que ainda têm esse problema, esta é uma solução alternativa que eu gosto que evita que você tenha que inserir os objetos um por um:
fonte
Para mim, tentei tudo acima sem sucesso; mas tudo que eu tive que fazer foi deletar a pasta de dados derivados, então abrir outro projeto aleatório, esperar que ele indexe e agora meu projeto original (com defeito) funciona!
Faça um favor ao mundo do desenvolvimento e torne seus compiladores rápidos de código-fonte aberto - para que não fiquemos todos frustrados por sua incompetência.
fonte
Estou usando o Xcode versão 7.3 (7D175)
Acho que posso ter descoberto um problema subjacente. Houve duas instâncias em que fiquei preso na fase de indexação:
Criei um encerramento que atribuí a uma variável e omiti a assinatura de tipo. Acho que o xcode teve problemas com essa etapa de inferência de tipo. Se bem me lembro, um dos argumentos era um CGPoint, que tem um construtor sobrecarregado. Minha hipótese é que há muitas possibilidades do que meu encerramento pode aceitar como argumentos.
Refatorei um método de fábrica de forma que, em vez de retornar instâncias de um tipo, ele pudesse retornar instâncias de muitos tipos com uma classe base comum. Parece que sempre que usei o método de fábrica, tive que converter o objeto resultante para um tipo específico (com as? Ou atribuindo-o a uma variável que aceita um tipo específico). Novamente, a etapa de inferência de tipo parece estar quebrada.
Parece que o mesmo está acontecendo com as declarações do dicionário mencionadas por indivíduos anteriores. Eu preenchi um relatório de bug com a apple.
fonte
Tive o mesmo problema após atualizar para o 6.1. O Xcode travaria na compilação ou indexação sem gerar uma mensagem de erro específica.
O problema foi finalmente resolvido dividindo algumas das expressões mais longas nos arquivos swift em várias expressões mais curtas. Parte do meu programa combina muitas variáveis de string diferentes para formar uma string mais longa. As tentativas de combiná-los em uma única expressão e o uso do operador de atribuição de adição falharam. Consegui fazer funcionar fazendo algo semelhante ao seguinte (simplificado):
Tive essa ideia ao receber o seguinte erro muitas vezes na versão anterior do Xcode "A expressão era muito complexa para ser resolvida em um tempo razoável; considere dividir a expressão em subexpressões distintas."
Espero que isto ajude
fonte
Eu lutei com o mesmo problema. Tentei as duas soluções mencionadas (exclusão de dados derivados e exclusão de .xcworkspace) sem sucesso. Também tentei comentar lentamente a maior parte do código aos poucos e remover os arquivos até que não houvesse quase nada e a indexação ainda estivesse travada.
Eu encontrei uma solução que funcionou para mim, abri o projeto com um Xcode versão 6.1 mais antigo (6A1030) que não tinha problemas de indexação, em seguida, voltei para a versão mais recente do Xcode 6.1 (6A1052d) que eu estava usando antes e a indexação estava corrigido e continuou a funcionar bem.
Minha conclusão é que esse é um bug do Xcode versão 6.1 (6A1052d) que espero que melhore com versões futuras.
O problema volta de vez em quando, a mesma correção sempre funciona. Acho que outra solução seria apenas ficar com a versão mais antiga do Xcode 6.1 (6A1030), mas não funcionará com dispositivos que executam o iOS 8.1 e não terá as últimas correções de bugs.
fonte
Eu tentei isso com o Xcode 8.3.3. Aqui estão meus resultados:
Você pode escrever um código Swift perfeitamente bom que fará com que a indexação trave.
Uma vez que a indexação trava, ela trava. Alterar o código Swift de volta para algo que não faria com que a indexação travasse não ajuda, ele ainda trava.
Fechar o projeto e reabrir não ajuda nessa situação.
Sair do Xcode e reiniciá-lo ajuda. A indexação não travará mais (isto é, se você alterou o código de volta para algo que não o faz travar).
Reiniciar o Mac também ajuda, embora não seja necessário.
O travamento é causado por um código Swift perfeitamente bom. Um exemplo que eu parecia
A indexação travaria. Eu comentei a maior parte do "??" linhas e estava bem (depois de sair e relançar o Xcode). Sem comentários, uma linha após a outra. Com um certo número de linhas estava bom, então descomentar a próxima linha o faria travar.
Aparentemente, a única coisa que ajuda é mudar seu código.
fonte
No meu Xcode a solução foi fechar todas as janelas redundantes. Por alguma razão, muitas janelas abertas tornam o Xcode muito lento.
fonte
Finalmente, "resolvi" o problema, embora seja apenas uma solução alternativa.
Criei outro projeto e adicionei arquivos um por um a ele. Então eu localizei um arquivo viewcontroller.swift "muito longo". Então, quebrei seus códigos em módulos e transformei esses códigos usados repetidamente em funções em outro arquivo swift. E também peguei a sugestão online de que a expressão longa deve ser dividida em mais curta. Então, a indexação funciona e a compilação funciona.
Por enquanto, "resolvi".
MAS, eu não acho que isso esteja certo. O Xcode IDE deve ser mais do que capaz de lidar com meu arquivo swift "muito longo", apenas 1500 linhas. Acredito que isso seja definitivamente um bug (existente há muito tempo), embora o Xcode 6.1 já seja uma atualização do Xcode 6.0.1.
fonte
Para mim, excluí o aplicativo Xcode, baixei-o novamente e instalei-o. Isso resolveu o problema, pelo menos agora.
fonte
A indexação do Xcode geralmente para seu código para sugestões e preenchimento automático, entre outras coisas, como ajudá-lo em storyboards e vice-versa. Mas para tornar seu projeto xcode mais rápido, você pode desligá-lo / ligá-lo via terminal
Desative os
padrões de indexação write com.apple.dt.XCode IDEIndexDisable 1 Ative os padrões de indexação write com.apple.dt.XCode IDEIndexDisable 0
Mas melhor abordagem para usar um mac rápido com boa RAM.
fonte
Se você não se importa em voltar para 6.0.1 até que eles descubram, foi isso que funcionou para mim. Eu estava tendo o mesmo problema com 6.1 e 6.1.1. Agora estou bem. Vou tentar 6.2 quando for lançado.
Você pode encontrar versões anteriores do software da apple em seu site oficial de desenvolvimento, aqui: https://developer.apple.com/downloads/index.action
Se você fizer isso, certifique-se de excluir sua cópia atual do Xcode primeiro.
fonte
Estou usando o Xcode 6.1.1 com arquivos swift exatamente no mesmo MacBook Pro.
Conforme eu continuava adicionando linhas em um array de string 3D, o Xcode de repente se tornou inutilizável e agora eu não posso fazer nada.
Tentarei reverter para 6.1 e esperançosamente o problema irá embora.
fonte
Estou vendo isso no Xcode 6.3.2. Eu realmente esperava que um ano após o lançamento, eles tivessem o compilador funcionando, mas, infelizmente.
Se nenhuma das soluções acima funcionar, tente verificar se há erros sintáticos em seu código. No processo de refatoração, extraí um encerramento, mas esqueci de qualificar os parâmetros:
Se aprendi alguma coisa trabalhando em Swift, foi trabalhar de forma incremental, para evitar ter que voltar atrás para encontrar o código ofensivo.
fonte
fonte
Eu uso o Xcode 8.2 e também terminei com esse problema. Tudo começou depois que eu defini uma variável de tupla complexa - uma matriz de tupla com subarray de tupla. As coisas ficam muito lentas quando o subarray da tupla tem uma propriedade que é calculada programaticamente.
Como algumas outras respostas observaram, a indexação leva uma eternidade e acredito que está tentando inferir os tipos da variável.
Resolvi o problema primeiro definindo claramente a variável com os tipos incluídos. Ao atualizar a propriedade, eu a calculo primeiro e depois a atribuo à tupla, em vez de calcular na definição da variável.
Aqui está um código de exemplo.
O ponto principal é que não deixe o Xcode inferir estruturas complexas.
fonte
Eu estava tendo o mesmo problema. Meu Xcode é 8.2.1. Mas, no meu caso, eu queria criar uma matriz de dicionário com 33 pares de valores-chave. Eu estava fazendo da seguinte maneira que estava travada na indexação:
O seguinte funcionou para mim:
fonte
Eu também tive esse problema e o resolvi removendo / alterando expressões com o operador "+".
Eu mudei isso:
Para isso:
Isso resolveu o problema.
Minha máquina é um MBP no máximo no final de 2013
fonte
Você pode querer atualizar para o Xcode 6.1.1
Foi lançado oficialmente e resolvido para nós o problema de indexação. Na descrição da atualização, ele diz que foram aplicadas correções de estabilidade, então é muito provável que se comporte de uma maneira mais estável.
fonte
O Xcode 6.2 beta resolveu o problema para mim. Não muito rápido, mas pelo menos não está indexando para sempre. O beta não instala sobre a instalação regular do Xcode, então se você não gosta do beta, você pode simplesmente excluí-lo.
Vários downloads de Xcode, incluindo o beta>
fonte
Eu tinha expressões como:
Além disso
Portanto, o objetivo é reescrever seu arquivo para conter apenas expressões de nível de jardim de infância e o problema de indexação irá embora.
fonte
Xcode 11.5 (11E608c) e ainda os mesmos problemas, 6 anos após a pergunta original. Eu gostaria de poder "marcar" a maçã nesta questão para que eles possam ver essa bagunça. Este é um grande projeto (> 1000 arquivos) e eu estava abaixo do relógio, então quando eu notei o índice de congelamento eu estava com mais de 100 arquivos alterados e não posso voltar atrás.
Já tentei de tudo:
O problema era a criação de um array:
O que me ajudou a descobrir o arquivo swift ruim foi quando o xcode congelou a indexação, eu fiz as seguintes etapas
SOURCEKIT_LOGGING=3 /Applications/Xcode.app/Contents/MacOS/Xcode &> ~/Documents/xcode.log
que iniciará o Xcode com nível 3 detalhado e iniciará o registro no arquivo de log.Não é uma solução completa, mas é útil se aprofundar e saber onde procurar.
fonte