SwiftUI: aggiornamento automatico dell'anteprima in pausa, sempre


12

Ho un'app esistente, fondamentalmente un'app della lista della spesa, alla quale sto provando ad aggiungere un po 'di dolce amore per SwiftUI.

Il mio problema è che l'aggiornamento dell'anteprima in tempo reale non funziona: viene sempre visualizzato l'avviso "Aggiornamento automatico dell'anteprima in pausa". Ho premuto il pulsante Riprendi, crea l'app, mostra la vista corrente e quell'avvertimento viene immediatamente visualizzato di nuovo. Non riesco mai a vedere le modifiche al codice riflesse nell'area di disegno senza usare il pulsante Riprendi.

Questo sta accadendo in Xcode 11.1 e 11.2 beta 2. Non riesco a trovare letteralmente altra menzione di questo qui su SO, e c'è un thread senza risposte sui forum Dev di Apple.


Ho notato che l'anteprima dal vivo si interrompe anche abbastanza spesso per me ... Le uniche cose che posso cambiare che non si fermano sono cose molto minori come la regolazione del testo che viene visualizzato in una vista di testo ... Apporta anche piccole modifiche come questa farti mettere in pausa per te?
Quinn,

@Quinn: sì, prima ancora di apportare una modifica, viene visualizzato il pulsante di avviso e riprendi. Vengono visualizzati anche prima che la compilazione del curriculum sia terminata e l'anteprima venga visualizzata. Non posso apportare alcuna modifica che sia visibile senza usare il ripristino.
Brian M,

Risposte:


6

Se disponi di Esegui fasi di script personalizzate in Build Phases e non desideri (o non puoi) rimuoverle, prova a selezionare la casella "Esegui script solo durante l'installazione".

inserisci qui la descrizione dell'immagine


Questo è ciò che lo stava causando nel mio caso: avevo uno script per incrementare automaticamente il numero di build. Bella presa. Grazie.
Raffjones,

Buona risposta: è meglio di ciò che il supporto Apple mi ha detto di fare perché mantiene intatte le funzionalità. Ho spostato la risposta accettata alla tua :)
Brian M

8

Ho finito per inviare feedback ad Apple e hanno risposto con una correzione. Ho uno script di build nel target che incrementa automaticamente il numero di build. Se rimuovo quello script, l'anteprima funziona come previsto.

Quindi, se riscontri questo problema, rimuovi qualsiasi cosa in Target -> Crea fasi -> Esegui script e riprova. L'anteprima della tela deve essere aggiornata come previsto.


1
Non ho script di compilazione ma ho ancora questo problema in Xcode 11.2.1.
Isuru,

Stessa cosa. Sto eseguendo Xcode 11.3 e all'improvviso ha iniziato a succedere e la rimozione delle fasi degli script non lo risolve.
Pacu

1
Stesso problema qui con Xcode 11.3.1 in esecuzione su 10.15.2 (senza script). Se faccio clic su "Riprendi", il riquadro dell'area di disegno scompare semplicemente e l'avviso ritorna quando viene riaperta l'area di disegno. L'anno scorso ho rinunciato a SwiftUI in beta dopo aver riscontrato troppi bug, ci sono tornato pensando sicuramente che ora avrebbe funzionato, ma no. Gli strumenti sono spazzatura completa e non funzionano affatto. Anche creando un nuovissimo e pulito progetto dell'interfaccia utente Swift, si rompe subito. Spero che Apple risolva questi terribili bug perché SwiftUI ha molte promesse, ma sta lasciando un cattivo gusto nella bocca degli sviluppatori. Forse Xcode 12 + 10.6.
Ben Stahl,

Grazie per il suggerimento, questo mi ha aiutato. Tuttavia, tieni presente che ciò potrebbe influire su ogni script di esecuzione in ogni destinazione che sarà contenuto nella tua app come estensioni di app e app di visualizzazione.
Koraktor,

Grazie, stavo avendo questo problema ma era uno script di versione in esecuzione in un framework incorporato che avrebbe quindi messo in pausa l'anteprima. Ero stato su una strada completamente sbagliata pensando che fosse qualcosa a che fare con Core Data e anteprime.
dlemex,

3

Per me, Canvas non funzionava quando avevo Legacy Build System.

Puoi cambiarlo tramite,

File -> Impostazioni area di lavoro -> Sistema build -> Scegli "Nuovo sistema build (impostazione predefinita).

Come si dice, è l'opzione predefinita. Se per qualsiasi motivo è stato scelto il sistema di build legacy, Canvas non funzionerà.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.