SwiftUI: atualização automática da visualização pausada, sempre

12

Eu tenho um aplicativo existente, basicamente um aplicativo de lista de compras, ao qual estou tentando adicionar um pouco de amor SwiftUI.

Meu problema é que a atualização da visualização em tempo real não funciona - o aviso "Atualização automática da visualização pausada" é exibido continuamente. Apertei o botão retomar, cria o aplicativo, mostra a visualização atual e esse aviso é exibido imediatamente novamente. Nunca consigo ver alterações no código refletido na tela sem usar o botão Continuar.

Isso está acontecendo no Xcode 11.1 e 11.2 beta 2. Não posso encontrar literalmente outra menção a isso aqui no SO, e há um tópico sem respostas nos fóruns de desenvolvimento da Apple.

Brian M
fonte
Percebi que a visualização ao vivo também faz uma pausa muitas vezes para mim ... As únicas coisas que posso alterar que não pausam são coisas muito pequenas, como ajustar o texto que é exibido em uma exibição de texto ... Faça pequenas alterações como essa também causar uma pausa para você?
Quinn
@ Quinn - sim, antes mesmo de fazer uma alteração, o botão de aviso e currículo aparece. Eles são exibidos antes mesmo da conclusão da compilação do resumo e da visualização. Não consigo fazer nenhuma alteração visível sem usar o currículo.
Brian M

Respostas:

6

Se você está tendo fases de script de execução personalizadas em fases de criação e não deseja (ou não pode) removê-las, tente marcar a caixa de seleção "Executar script apenas ao instalar".

insira a descrição da imagem aqui

Kacper Dziubek
fonte
Isso é o que estava causando isso no meu caso - eu tinha um script para incrementar automaticamente o número da compilação. Boa pegada. Obrigado.
raffjones 21/04
Boa resposta - isso é melhor do que o suporte da Apple me disse para fazer, pois mantém a funcionalidade intacta. Eu mudei a resposta aceita para a sua :)
Brian M
8

Acabei enviando feedback para a Apple e eles responderam com uma correção. Eu tenho um script de construção no destino que incrementa automaticamente o número da construção. Se eu remover esse script, a visualização funcionará como pretendido.

Portanto, se você estiver tendo esse problema, remova qualquer coisa em Target -> Build Fhases -> Run Script e tente novamente. A visualização da tela deve ser atualizada conforme o esperado.

Brian M
fonte
11
Eu não tenho nenhum script de construção, mas ainda tenho esse problema no Xcode 11.2.1.
Isuru
Mesma coisa. Estou executando o Xcode 11.3 e, de repente, isso começou a acontecer e remover as fases do script não o corrige.
Pacu 2/01
11
O mesmo problema aqui com o Xcode 11.3.1 em execução no 10.15.2 (sem scripts). Se eu clicar em "Continuar", o painel de tela simplesmente desaparecerá e o aviso retornará quando a tela for reaberta. Desisti do SwiftUI na versão beta no ano passado, depois de encontrar muitos bugs, voltei a ele pensando que certamente funcionaria agora, mas não. As ferramentas são uma lixeira completa e nem funcionam. Mesmo criando um projeto Swift UI novo e limpo, ele é quebrado logo de cara. Espero que a Apple corrija esses erros terríveis porque o SwiftUI tem muita promessa, mas está deixando um gosto ruim na boca dos desenvolvedores. Talvez o Xcode 12 + 10.6.
Ben Stahl
Obrigado pela dica, isso ajudou. Mas observe que isso pode afetar todos os scripts de execução em todos os destinos que estarão contidos no seu aplicativo, como extensões de aplicativo e aplicativos do Watch.
Koraktor 28/01
Obrigado, eu estava tendo esse problema, mas era um script de versão em execução em uma estrutura incorporada que faria uma pausa na visualização. Eu estava em uma pista completamente errada, pensando que tinha algo a ver com os dados principais e as visualizações.
dlemex 10/02
3

Para mim, o Canvas não funcionou quando eu tinha o Legacy Build System.

Você pode alterá-lo via,

Arquivo -> Configurações da área de trabalho -> Sistema de compilação -> Escolha "Novo sistema de compilação (padrão).

Como diz, é a opção padrão. Se, por qualquer motivo, o sistema de criação Legacy for escolhido, o Canvas não funcionará.

Imthath
fonte