Com qualquer alteração no código (embora o arquivo não esteja em .pch), o projeto completo é recompilado toda vez.
Com qualquer alteração no código (embora o arquivo não esteja em .pch), o projeto completo é recompilado toda vez.
Respostas:
Atualização 2017/1/2
Este problema não foi resolvido no Xcode 8.2.1 (para o meu projeto)
Como sobreviver?
Code IDE: Xcode/Atom
Build: xcrun
Debug: Xcode (Control + Command + R)
Atualização 17/12/2016
Este problema não foi resolvido no Xcode 8.2.
Atualização 12/12/2016
Atom para codificar e linha de comando para criar e depurar é a minha escolha agora. Espero que a Apple corrija esse bug legítimo em breve.
Atualização 2016/12/04
Este problema parece resolvido com o Xcode 8.2 (beta 2) .
Mas para mim não está resolvido, eu enfrento esse problema mesmo quando uso o Xcode 8.2. Você pode experimentá-lo (faça o download do Xcode8.2 beta2 aqui )
Sistema de Compilação • O Xcode não reconstruirá um destino inteiro quando ocorrerem apenas pequenas alterações. (28892475)
Resposta antiga: Esta é uma solução alternativa:
Guia "Build Setting" -> "C Language Dialect" -> Altere para "Compiler Default".
O "C Language Dialect" foi definido como "GNU99" em vez de "Compiler Default". Anteriormente, o padrão era GNU99, mas agora não é. Em algum momento, o Xcode não migrou as configurações do projeto da biblioteca corretamente e, portanto, foi definido como GNU99. Depois que mudei para GNU99, ele parou de recompilar todo o meu código todas as vezes!
Vá para Produto -> Esquema -> Editar esquema. Selecione Criar na coluna do lado esquerdo e desmarque " Localizar dependências implícitas "
Mas esse sinalizador deve permanecer marcado quando você estiver criando o projeto pela primeira vez.
A correção para mim era apenas fechar o storyboard, eu tinha o arquivo de origem aberto com o editor assistido e o arquivo do storyboard também (fechar o storyboard - já que eu não estava fazendo nenhuma alteração) removi toda a compilação desnecessária
ATUALIZADA
A maior melhoria que consegui fazer foi modularizar meu projeto. Modularizando especificamente a camada ORM, usada em quase todas as outras classes. Ao mover esse código para um destino separado dentro do meu projeto e importá-lo como um módulo, fui capaz de melhorar bastante os tempos de compilação. O Xcode não decide mais recompilar arquivos desnecessários quando eu faço uma compilação.
Agora eu uso o método de compilação de arquivo único para compilações de depuração incremental rápidas.
Existem outras boas sugestões neste link, incluindo refatoração de código, https://medium.com/rocket-fuel/optimizing-build-times-in-swift-4-dc493b1cc5f5
VELHO
Ainda tem sido um problema constante para mim com o Xcode 9. Como muitos de vocês, estou trabalhando em um grande projeto rápido 4 / cocoapods com muitos arquivos de origem e recompilando cada arquivo sempre que é irritante.
Até agora, estou obtendo os melhores resultados com as seguintes configurações. Eu sugiro que você experimente e veja como funciona para você.
Adicionadas configurações de compilação definidas pelo usuário,
Nota: Não tenho a configuração personalizada definida pelo usuário para a otimização do módulo inteiro.
Alterei algumas coisas com o meu código em relação ao cabeçalho do prefixo que parece ter corrigido esse problema. Não sei qual deles realmente fez o truque, mas vou compartilhá-los todos na esperança de que ajude alguém por aí. Se você não tiver um cabeçalho de prefixo definido, acho que esse não é o problema (ou o problema é multifacetado).
@import MyModule
). (Para mim, este e o passo 1 eram o mesmo.)Se isso ainda não funcionar, tente remover mais algumas importações do cabeçalho do prefixo. Pode haver algo que tropeça ...
Parece que eles estão trabalhando ativamente nele de acordo com https://forums.developer.apple.com/thread/62737, mas uma solução alternativa é adicionar
HEADERMAP_USES_VFS = YES
nas configurações de compilação do seu destino (Projeto -> Destino -> Configurações de compilação -> Definido pelo usuário).
Hoje, essa solução funcionou todas as vezes para mim hoje, depois que nenhuma outra solução funcionou de forma consistente no mês passado.
EDIT: Às vezes ainda recompilar tudo, embora pareça fazê-lo com muito menos frequência com essa configuração definida.
Confira todo o seu código de @IBDesignable
diretrizes no meu caso particular, o Xcode build project o tempo todo, porque eu tinha algumas visualizações no meu storyboard que continham esses @IBDesignable
atributos. A segunda coisa é que eu também tenho o meu storyboard aberto em uma janela separada (não na guia) que é empurrada pelo meu Xcode para criar compilações para todos os simuladores para sempre.
@IBDesignable
diretivas ... há algo em particular que devemos procurar?
Madhuri Mane está totalmente certa sobre isso. Para adicionar um pouco mais de clareza, alguns pontos importantes a serem observados:
Isso é APENAS aplicável se você tiver dependências implícitas de bibliotecas / estruturas nas quais seu destino depende.
Se "Localizar dependências implícitas" estiver desativado:
Resultado: a biblioteca não será criada antes da criação do destino do aplicativo. O destino do aplicativo falha ao criar.
Correção: para garantir que o segundo cenário não aconteça, você deve adicionar os destinos necessários à lista de destinos e ordená-los corretamente.
Fonte e leituras adicionais sobre o tópico: https://pewpewthespells.com/blog/managing_xcode.html#scheme-action
Agora, se todo o seu projeto estiver alojado dentro de um destino e levar 4 minutos para compilar, não há muito o que fazer sobre isso, exceto dividi-lo em estruturas para tirar proveito do exposto acima ou descobrir onde a compilação fica atrasada. Se você estiver usando algo como o PaintCode ou tiver grandes partes do código do UIKit rapidamente, altere-o para Objective-c, ele será compilado muito mais rapidamente
Apple lançou nova versão beta do Xcode ontem (14 de novembro)
Xcode 8.2 beta 2
E esse problema foi marcado como resolvido na nota de lançamento.
Sistema de Compilação
• O Xcode não reconstruirá um destino inteiro quando apenas pequenas alterações ocorrerem. (28892475)
Está funcionando para mim. A velocidade de construção voltou como de costume. Todo mundo que está enfrentando esse problema deve experimentá-lo!
Por favor, vá para a configuração de construção do projeto e altere o "C Language Dialect".
O "C Language Dialect" é definido como "GNU99" em vez de "Compiler Default" quando você atualiza a versão do xcode. Em algum momento, o Xcode não migrou as configurações do projeto da biblioteca corretamente e, portanto, foi definido como GNU99. Isto resolverá o problema
Se você tiver feito alterações no arquivo Swift, comece a criar o aplicativo, vá para a última guia e clique no log de compilação, durante o estágio "Verificar dependências", pare a compilação e execute-a novamente. Na segunda execução, ele deve criar apenas os arquivos que você modificou. Se feito corretamente, achei que funciona sempre. Não há necessidade de fazer alterações nas configurações do projeto.
Parece ser um bug no Xcode.
Se você vir o aplicativo fazendo uma compilação completa, pare a compilação e tente esse truque novamente.
Se você não fez alterações no código, use CMD + CTRL + R para executar sem criar o aplicativo que anexa o depurador. Não cria aplicativo, mas pode ajudar a economizar tempo desnecessário.
Foi corrigido um problema do meu lado aplicando a desmarcação na solução "Localizar dependências implícitas".
MAS lembre-se, se você estiver usando cocoapods, aplique essas configurações também ao seu projeto de pod selecionando-o
Produto -> Esquema -> Pods - "yourProjectName"
também se aplica em:
Produto -> Esquema -> "yourProjectName"
Isso me ajuda, então espero que essa dica ajude outra pessoa.
obrigado
Tente: 1. Navegue para o projeto 2. Clique em Configurações de compilação 3. Verifique se OptimizationLevel está definido como Nenhum para depuração. 4. Clique em Adicionar configuração definida pelo usuário. 5. Defina SWIFT_WHOLE_MODULE_OPTIMIZATION como YES.
para garantir o tempo de compilação do xcode, pode usar o IRAMDISK (disco de memória virtual). Meios muito úteis e eficazes para reduzir o tempo de compilação.
Também pode ser usado para acelerar aplicativos usados com frequência.
consulte o link a seguir para baixar e usar: http://iramdisk.findmysoft.com/mac/