Desde que atualizei para a versão mais recente do Xcode 11.0 (11A420a), a depuração é extremamente lenta e complicada.
EDIT: Depois de atualizar para 11.1 GM (11A1027), o problema ainda é o mesmo.
Compilar um projeto e executá-lo no simulador ou em um dispositivo não é problema. No entanto, ao atingir um ponto de interrupção, o Xcode se torna mais ou menos inutilizável:
- A execução do programa pára imediatamente quando o ponto de interrupção é alcançado. No entanto, o Xcode precisa de até 30 segundos para mostrar a posição na janela de código e mais um minuto ou mais para carregar o conteúdo da visualização da variável (que mostra os valores e estados das variáveis disponíveis no ponto de interrupção).
- Se eu usar os recursos Step into ou Step over , leva até um minuto para realizar a próxima etapa e novamente outro minuto para carregar as variáveis.
Estou executando o Xcode em um Mac mini 2018 com 3,2 GHz i7 e 32 GB de RAM. Eu usei o Xcode 10 na mesma máquina antes sem problemas.
Pesquisar por "Xcode lento" traz uma tonelada de threads e possíveis soluções, é claro. Dos meus anos como desenvolvedor iOS, sei que o Xcode nunca foi o programa mais rápido e estável. No entanto, nunca foi tão ruim quanto agora.
Infelizmente, nenhum dos truques conhecidos (reiniciar o Xcode ou o Mac, limpar o projeto, limpar as pastas da biblioteca do Xcode, etc. teve qualquer efeito,
Portanto, a grande questão é:
Este é um problema conhecido no Xcode 11? Existem soluções conhecidas?
Respostas:
Bem, eu tive o mesmo problema e recentemente descobri que simplesmente esqueci de desativar o diagnóstico do meu esquema
Abra suas configurações de execução -> Gerenciar esquemas -> Editar esquema -> Executar -> guia Diagnóstico
fonte
Eu vi algumas melhorias de desempenho ao usar o comportamento Whole versus Incremental Compilation. Além disso, a execução em Mojave e Catalina deve apresentar problemas de desempenho. Especificamente, uma vez que a visualização do Canvas e outros novos recursos exigem mais intensidade de CPU do que a última versão do Xcode, eu esperaria que o desempenho do Mojave fosse menor ao usar o Xcode 11 (já que não é otimizado para esta versão do sistema operacional). Com Catalina estando em Beta, espero ver problemas adicionais também. Não tomei medidas específicas além do teste de visão. A execução inicial em Whole Compilation é lenta, mas parece melhorar depois disso.
Estados de ajuda rápida:
fonte
Tente desmarcar: Paralelizar Build em cada destino em Editar Esquema . Economizará tempo de construção se o seu projeto tiver muitos destinos.
Editar esquema:
fonte
Você já tentou executar o Xcode em modo de segurança? Não é o ideal, mas essa foi a única maneira de fazê-lo funcionar com eficiência. Isso até a recente atualização do Catalina, onde meu dispositivo não é mais detectado no modo de segurança. Então, estou de volta à estaca zero agora.
fonte
Encontrei os mesmos problemas em dois casos diferentes:
1) o aplicativo não é iniciado pelo Xcode, ou seja, o sinalizador "Aguardar que o executável seja iniciado" é definido dentro do painel Informações das configurações de Execução do esquema;
2) a opção "Iniciar devido a um evento de busca em segundo plano" é selecionada nas configurações do esquema (mas este não é o padrão)
Xcode 11.2.1 (11B500)
fonte
No meu caso (XCode 11.x, MacOS 10.15.2), descobri que a extrema lentidão do depurador só é acionada se eu executar uma única etapa enquanto outra operação de etapa única estiver em andamento , ou seja, pressiono o botão de etapa muito rapidamente. Minha solução alternativa atual é evitar fazer isso.
Especulação pura, mas talvez seja desencadeada por XCode / LLDB tentando atender a vários pontos de interrupção simultaneamente? Tente remover todos os pontos de interrupção, exceto um, e veja se isso ajuda nas coisas.
Caso seja relevante: Eu trabalho principalmente com C ++ em XCode, com um pouco de Obj-C aqui e ali. Não uso o Swift no momento.
fonte
Tenho lidado com isso há muito tempo e finalmente descobri. Foram estas linhas no meu arquivo ~ / .lldbinit:
break set -F '-[UIView layoutIfNeeded]' -c '!(BOOL)[NSThread isMainThread]' -L objc break set -F '-[UIView(AdditionalLayoutSupport) updateConstraintsIfNeeded]' -c '!(BOOL)[NSThread isMainThread]' -L objc
Eu comentei essas linhas e agora é quase tão rápido quanto sem o depurador!
fonte
Eu tinha 238 pontos de interrupção não utilizados definidos. Quando eu os apaguei, ficou rápido novamente (mesmo com o diagnóstico ativado).
fonte