SwiftUI: actualización de vista previa automática en pausa, siempre

12

Tengo una aplicación existente, básicamente una aplicación de lista de compras, a la que estoy tratando de agregar un poco de dulce dulce SwiftUI lovin.

Mi problema es que la actualización de vista previa en tiempo real no funciona: la advertencia "Actualización automática de vista previa en pausa" se muestra continuamente. Presioné el botón de reanudar, construye la aplicación, muestra la vista actual y esa advertencia vuelve a aparecer inmediatamente. Nunca puedo ver los cambios en el código reflejado en el lienzo sin usar el botón de reanudar.

Esto está sucediendo en Xcode 11.1 y 11.2 beta 2. Literalmente, no puedo encontrar ninguna otra mención de esto aquí en SO, y hay un hilo sin respuestas en los foros de desarrollo de Apple.

Brian M
fuente
Me di cuenta de que la vista previa en vivo también se detiene con bastante frecuencia para mí ... Las únicas cosas que puedo cambiar que no se detienen son cosas muy pequeñas, como ajustar el texto que se muestra en una vista de texto ... Hacer cambios menores como ese también ¿Causar una pausa para ti?
Quinn el
@Quinn: sí, incluso antes de hacer un cambio, aparece el botón de advertencia y reanudar. Aparecen incluso antes de que finalice la compilación del currículum y se muestre la vista previa. No puedo hacer ningún cambio visible sin utilizar el curriculum vitae.
Brian M

Respuestas:

6

Si tiene fases de ejecución de script personalizadas en fases de creación y no desea (o no puede) eliminarlas, intente marcar la casilla de verificación "Ejecutar secuencia de comandos solo al instalar".

ingrese la descripción de la imagen aquí

Kacper Dziubek
fuente
Esto es lo que lo estaba causando en mi caso: tenía un script para incrementar automáticamente el número de compilación. Buena atrapada. Gracias.
raffjones
Buena respuesta: esto es mejor de lo que el soporte de Apple me dijo que hiciera porque mantiene la funcionalidad intacta. He movido la respuesta aceptada a la tuya :)
Brian M
8

Terminé enviando comentarios a Apple, y respondieron con una solución. Tengo un script de compilación en el destino que incrementa automáticamente el número de compilación. Si elimino ese script, la vista previa funciona según lo previsto.

Entonces, si tiene este problema, elimine cualquier cosa en Target -> Build Fases -> Run Script e intente nuevamente. La vista previa del lienzo debe actualizarse como es de esperar.

Brian M
fuente
1
No tengo ningún script de compilación, pero sigo teniendo este problema en Xcode 11.2.1.
Isuru
La misma cosa. Estoy ejecutando Xcode 11.3 y, de repente, esto comenzó a suceder y eliminar las fases del script no lo soluciona.
Pacu
1
El mismo problema aquí con Xcode 11.3.1 ejecutándose en 10.15.2 (sin scripts). Si hago clic en "Reanudar", el panel del lienzo simplemente desaparece y la advertencia vuelve cuando se vuelve a abrir el lienzo. Renuncié a SwiftUI en beta el año pasado después de encontrar demasiados errores, volví a pensar que seguramente funcionaría ahora, pero no. Las herramientas son basura completa y no funcionan en absoluto. Incluso creando un nuevo proyecto de interfaz de usuario Swift limpio, se rompe de inmediato. Espero que Apple corrija estos errores horribles porque SwiftUI es muy prometedor, pero está dejando un mal sabor en la boca de los desarrolladores. Tal vez Xcode 12 + 10.6.
Ben Stahl
Gracias por la pista, esto ayudó. Pero tenga en cuenta que esto podría afectar cada secuencia de comandos de ejecución en cada destino que se incluirá en su aplicación, como las extensiones de aplicación y las aplicaciones Watch.
Koraktor
Gracias, estaba teniendo este problema, pero era un script de versión que se ejecutaba en un marco incrustado que luego pausaría la vista previa. Había estado en un camino completamente equivocado pensando que tenía algo que ver con Core Data y las vistas previas.
dlemex
3

Para mí, Canvas no funcionaba cuando tenía Legacy Build System.

Puedes cambiarlo a través de,

Archivo -> Configuración del espacio de trabajo -> Sistema de compilación -> Elija "Nuevo sistema de compilación (predeterminado).

Como dice, es la opción predeterminada. Si por alguna razón se eligió el sistema de compilación Legacy, Canvas no funcionará.

Imthath
fuente