O Xcode continua construindo o storyboard após cada pressionamento de tecla

145

Meu projeto do Xcode usando um storyboard entrou recentemente em um estado muito estranho: o Xcode continua construindo o projeto inteiro e, principalmente, o storyboard após cada pressionamento de tecla . Não encontrei nenhuma razão para esse comportamento nem no meu projeto diferencie todos os arquivos interessantes (storyboard e projeto) nem uma configuração no Xcode (talvez eu não tenha conseguido encontrá-lo?) Escusado será dizer que esse "recurso" torna quase impossível trabalhar no meu projeto já que a CPU está constantemente ocupando a reconstrução do storyboard quando digito um novo código. Alguém viu isso?

MrTJ
fonte

Respostas:

415

É causado pelas IB_DESIGNABLEdefinições nos arquivos de cabeçalho de origem. Provavelmente, isso só causa problemas se o arquivo de cabeçalho que contém IB_DESIGNABLEestiver incluído (mesmo implicitamente) no arquivo de origem que você está editando no momento.

Não encontrei uma solução definitiva para desabilitar IB_DESIGNABLEe, assim, compilar o storyboard e os arquivos de origem continuamente. Eu apreciaria um sinalizador Xcode para desativar isso temporariamente. Eu tentei também cercar o IB_DESIGNABLEcom #ifdefmacros, mas eles são considerados mesmo se o valor for #ifdeffalso. Comentar uma a uma as IB_DESIGNABLEajudas, mas não é uma solução viável com muitos IB_DESIGNABLEs.

Atualizar

Finalmente encontrei uma maneira rápida de evitar esse comportamento irritante. Com o storyboard aberto na janela ativa, desative "Atualizar automaticamente vistas" no menu Editor. Isso interromperá a atualização das visualizações no editor de storyboard que usam seu código personalizado e, assim, aceleram significativamente seu desenvolvimento. Quando você precisar novamente da compilação just-in-time para ter uma visualização visual do seu código personalizado, ative esta opção novamente (parece que você também precisará reabrir o storyboard para fazê-lo funcionar novamente).

insira a descrição da imagem aqui

Você pode adicionar uma ligação de chave ao comando, como command-option-control-A, para ativar / desativar o comportamento facilmente. Para adicionar uma ligação de tecla no Xcode, toque em comando-vírgula para obter preferências, escolha a guia Ligações de teclas, use a barra de pesquisa para encontrar o comando e clique duas vezes na área direita para adicionar o pressionamento de tecla desejado.

Abordagem "deixe para lá"

Alternativamente, desative a opção "Atualizar automaticamente vistas" e nunca a ligue .

Faça um pressionamento de tecla conveniente para "Atualizar todas as visualizações" , diga command-option-shift-R

insira a descrição da imagem aqui

Enquanto trabalha, basta tocar em command-option-shift-R de tempos em tempos ou conforme necessário. Geralmente, é apenas necessário tocar em command-option-shift-R enquanto você trabalha no storyboard.

MrTJ
fonte
10
Não sei como ele foi ligado, mas desligando "Visualizações automaticamente refresh" resolveu o meu problema
MandisaW
1
O Xcode 7.3 está constantemente construindo um projeto quando o editor ativo abre o storyboard. Felizmente, essa resposta resolveu meu problema. A Apple continua me impressionando ...
Oleksii Taran
24
Problema com o Xcode Versão 8.2.1 (8C1002) resolvido. Quando encontrei esta resposta e resolvi meu problema, não consegui parar minhas lágrimas. Passei 2 dias pesadelo excluindo dados derivados, limpando o projeto, reinstalando todos os pods. (Eu acho que é hora de maçã, dar todo o desenvolvimento de IDE para JetBrains que a Apple fazer isso é apenas uma merda Obrigado.!
korgx9
2
Muito obrigado, o xcode continua construindo realmente me deixa chateado.
precisa saber é o seguinte
8
Esta solução também funciona no Xcode 9. Ative a opção "Atualizar automaticamente vistas" no Storyboard, e não seja mais constante a reconstrução. Muito obrigado!
PL
7

Eu tive esse problema e a resposta aceita não funcionou para mim.

O problema que tive foi que eu sempre mantenho o storyboard aberto em sua própria guia no XCode para que eu possa acessá-lo rapidamente.

A única maneira de corrigir isso era fechar essa guia ou selecionar um arquivo diferente (como um arquivo de código normal) e depois fechar e reabrir o XCode. Depois disso, não era mais reconstruído a cada pressionamento de tecla.

Esteja avisado, no entanto, se você precisar abrir o storyboard para fazer alterações, esse problema poderá reaparecer algumas vezes e terei que repetir o processo acima.

Mal posso esperar até a Apple resolver isso, pois é muito frustrante!

(ノ ಠ 益 ಠ) ノ 彡 ┻━┻

Nick Kirsten
fonte