SwiftUI: mise à jour automatique de l'aperçu en pause, toujours


12

J'ai une application existante, essentiellement une application de liste de courses, à laquelle j'essaie d'ajouter un peu de douceur SwiftUI lovin.

Mon problème est que la mise à jour de l'aperçu en temps réel ne fonctionne pas - l'avertissement "Mise à jour automatique de l'aperçu interrompu" s'affiche en permanence. J'ai appuyé sur le bouton de reprise, il crée l'application, il affiche la vue actuelle et cet avertissement s'affiche immédiatement à nouveau. Je ne peux jamais voir les modifications du code reflétées dans la toile sans utiliser le bouton de reprise.

Cela se produit dans Xcode 11.1 et 11.2 beta 2. Je ne trouve littéralement aucune autre mention de cela non plus ici sur SO, et il y a un fil sans réponse sur les forums de développement d'Apple.


J'ai remarqué que l'aperçu en direct s'arrête également assez souvent pour moi ... Les seules choses que je peux changer qui ne s'arrêtent pas sont des choses très mineures comme l'ajustement du texte qui est affiché dans une vue de texte ... Faites aussi des changements mineurs comme ça la faire s'arrêter pour vous?
Quinn

@Quinn - oui, avant même de faire un changement, le bouton d'avertissement et de reprise apparaît. Ils s'affichent avant même la fin de la génération du CV et l'aperçu. Je ne peux pas apporter de modifications visibles sans utiliser CV.
Brian M

Réponses:


6

Si vous rencontrez des phases d'exécution de script personnalisées dans les phases de construction et que vous ne voulez pas (ou ne pouvez pas) les supprimer, essayez de cocher la case "Exécuter le script uniquement lors de l'installation".

entrez la description de l'image ici


C'est ce qui le causait dans mon cas - j'avais un script pour incrémenter automatiquement le numéro de build. Belle prise. Merci.
raffjones

Bonne réponse - c'est mieux que ce que le support Apple m'a dit de faire car cela maintient la fonctionnalité intacte. J'ai déplacé la réponse acceptée vers la vôtre :)
Brian M Il y a

8

J'ai fini par envoyer des commentaires à Apple, et ils ont répondu avec un correctif. J'ai un script de build dans la cible qui incrémente automatiquement le numéro de build. Si je supprime ce script, la prévisualisation fonctionne comme prévu.

Donc, si vous rencontrez ce problème, supprimez quoi que ce soit dans Target -> Build Phases -> Run Script et réessayez. L'aperçu du canevas devrait être mis à jour comme prévu.


1
Je n'ai pas de scripts de construction mais j'obtiens toujours ce problème dans Xcode 11.2.1.
Isuru

Même chose. J'utilise Xcode 11.3 et tout d'un coup, cela a commencé à se produire et la suppression des phases de script ne le résout pas.
Pacu

1
Même problème ici avec Xcode 11.3.1 fonctionnant sur 10.15.2 (pas de scripts). Si je clique sur «Reprendre», le volet de canevas disparaît tout simplement et l'avertissement revient lorsque la toile est rouverte. J'ai abandonné SwiftUI en version bêta l'année dernière après avoir rencontré trop de bugs, j'y suis revenu en pensant sûrement que cela fonctionnerait maintenant, mais non. Les outils sont des poubelles complètes et ne fonctionnent pas du tout. Même en créant un tout nouveau projet d'interface utilisateur Swift propre, il est immédiatement interrompu. J'espère qu'Apple corrige ces horribles bugs car SwiftUI est très prometteur, mais cela laisse un mauvais goût dans la bouche des développeurs. Peut-être Xcode 12 + 10.6.
Ben Stahl

Merci pour l'astuce, cela a aidé. Mais veuillez noter que cela peut affecter chaque script d'exécution dans chaque cible qui sera contenue dans votre application comme les extensions d'application et les applications Watch.
Koraktor

Merci, je rencontrais ce problème mais c'était un script de version fonctionnant dans un cadre intégré qui interromprait ensuite l'aperçu. J'avais été sur une mauvaise voie en pensant que c'était quelque chose à voir avec Core Data et les aperçus.
dlemex

3

Pour moi, Canvas ne fonctionnait pas lorsque j'avais Legacy Build System.

Vous pouvez le modifier via,

Fichier -> Paramètres de l'espace de travail -> Build System -> Choisissez "New Build System (Default).

Comme il est dit, c'est l'option par défaut. Si pour une raison quelconque le système de construction Legacy a été choisi, Canvas ne fonctionnera pas.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.