SwiftUI: Автоматичне оновлення попереднього перегляду призупинено, завжди


12

У мене вже є додаток, в основному додаток із списку покупок, до якого я намагаюся додати трохи солодкого коханого SwiftUI.

Моя проблема полягає в тому, що оновлення попереднього перегляду в реальному часі не працює - попередження "Автоматичне оновлення попереднього перегляду призупинено" постійно з'являється. Я натискаю кнопку резюме, вона створює додаток, показує поточний вигляд, і це попередження відразу ж з’являється знову. Я ніколи не бачу змін у коді, відображених на полотні, не використовуючи кнопку відновлення.

Це відбувається в Xcode 11.1 та 11.2 бета-версія 2. Я не можу знайти жодної іншої згадки про це, навіть тут, на SO, і є одна нитка без відповідей на форумах Apple Dev.


Я помітив, що попередній перегляд для мене також паузи досить часто ... Єдине, що я можу змінити, щоб не призупиняти, - це дуже незначні речі, такі як коригування тексту, який відображається в текстовому вікні ... Чи також незначні зміни викликати паузу для вас?
Квін

@Quinn - так, перш ніж я навіть внесу зміни, з’явиться кнопка попередження та відновлення. Вони відображаються ще до того, як збірка резюме закінчиться і покаже попередній перегляд. Я не можу внести будь-які зміни, які є видимими без використання резюме.
Брайан М

Відповіді:


6

Якщо у вас є власні фази запуску сценаріїв у фазах збірки, і ви не хочете (або не можете) їх видаляти, спробуйте встановити прапорець "Запустити сценарій лише під час встановлення".

введіть тут опис зображення


Це було причиною цього в моєму випадку - у мене був сценарій для автоматичного збільшення номера збірки. Гарний улов. Дякую.
raffjones

Хороша відповідь - це краще, ніж те, що мені запропонувала підтримка Apple, оскільки це зберігає функціональність недоторканим. Я переніс прийняту відповідь на вашу :)
Брайан М

8

Я в кінцевому підсумку надсилав відгуки в Apple, і вони відповіли виправленням. У мішені у мене є сценарій збірки, який автоматично збільшує номер збірки. Якщо я видаляю цей скрипт, то попередній перегляд працює за призначенням.

Тож якщо у вас виникає ця проблема, видаліть що-небудь із цільової -> Фази збірки -> Запустити сценарій і повторіть спробу. Попередній перегляд полотна має оновлюватися так, як ви очікували.


1
У мене немає сценаріїв побудови, але я все одно отримую цю проблему в Xcode 11.2.1.
Ісуру

Однакові речі. Я запускаю Xcode 11.3, і раптом це почалося, і видалення фаз скрипту не виправить це.
Паку

1
Тут же проблема з Xcode 11.3.1, що працює 10.15.2 (без сценаріїв). Якщо натиснути "Відновити", панель полотна просто зникає, і попередження повертається при повторному відкритті полотна. Минулого року я відмовився від бета-версії SwiftUI після того, як зіткнувся із занадто великою кількістю помилок, повернувся до нього, думаючи, що зараз він спрацює, але ні. Інструменти є повним сміттям і взагалі не працюють. Навіть створюючи абсолютно новий, чистий проект Swift UI, він розбивається відразу ж. Я сподіваюся, що Apple виправляє ці жахливі помилки, оскільки SwiftUI так багато обіцяє, але це залишає поганий смак у роті розробників. Можливо, Xcode 12 + 10.6.
Бен Шталь

Дякую за підказку, це допомогло. Але зауважте, що це може вплинути на кожен сценарій запуску в кожній цілі, який міститиметься у вашому додатку, як-от розширення та перегляд програм.
Корактор

Дякую, у мене була ця проблема, але це був сценарій версії, який працює у вбудованій рамці, яка потім призупинить попередній перегляд. Я був зовсім неправильним шляхом, думаючи, що це стосується основних даних та попереднього перегляду.
dlemex

3

Для мене Canvas не працював, коли я мав Legacy Build System.

Ви можете змінити це через

Файл -> Налаштування робочої області -> Система побудови -> Виберіть "Нова система збирання (за замовчуванням).

Як мовиться, це варіант за замовчуванням. Якщо з якоїсь причини було обрано систему складання Legacy, Canvas не працюватиме.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.