SwiftUI: automatyczne wstrzymywanie aktualizacji podglądu, zawsze wstrzymane


12

Mam istniejącą aplikację, w zasadzie aplikację z listą zakupów, do której próbuję dodać słodkiego, słodkiego SwiftUI lovin.

Mój problem polega na tym, że aktualizacja podglądu w czasie rzeczywistym nie działa - ciągle pojawia się ostrzeżenie „Automatyczne aktualizowanie podglądu wstrzymane”. Nacisnąłem przycisk Wznów, buduje aplikację, pokazuje bieżący widok, a to ostrzeżenie natychmiast pokazuje się ponownie. Nigdy nie widzę zmian w kodzie odzwierciedlonych w obszarze roboczym bez użycia przycisku wznowienia.

Dzieje się tak w Xcode 11.1 i 11.2 beta 2. Nie mogę znaleźć dosłownie żadnej innej wzmianki o tym tutaj tutaj na SO, i jest jeden wątek bez odpowiedzi na forach deweloperów Apple.


Zauważyłem, że podgląd na żywo również dla mnie dość często zatrzymuje się ... Jedyne rzeczy, które mogę zmienić, a które nie wstrzymują, to bardzo drobne rzeczy, takie jak dostosowanie tekstu wyświetlanego w widoku tekstowym ... Dokonaj podobnych drobnych zmian sprawić, że zatrzyma się za ciebie?
Quinn

@Quinn - tak, zanim jeszcze dokonam zmiany, pojawi się przycisk ostrzeżenia i wznowienia. Pojawiają się nawet przed zakończeniem kompilacji wznowienia i wyświetleniem podglądu. Nie mogę wprowadzić żadnych widocznych zmian bez użycia wznowienia.
Brian M

Odpowiedzi:


6

Jeśli masz niestandardowe fazy uruchamiania skryptu w fazach kompilacji i nie chcesz (lub nie możesz) ich usunąć, spróbuj zaznaczyć pole wyboru „Uruchom skrypt tylko podczas instalacji”.

wprowadź opis zdjęcia tutaj


To właśnie spowodowało to w moim przypadku - miałem skrypt do automatycznego zwiększania numeru kompilacji. Dobry chwyt. Dzięki.
raffjones

Dobra odpowiedź - jest to lepsze niż zalecono mi wsparcie Apple, ponieważ pozwala to zachować funkcjonalność. Przesłałem zaakceptowaną odpowiedź do twojej :)
Brian M

8

W końcu wysłałem opinię do Apple, a oni odpowiedzieli poprawką. Mam skrypt kompilacji w celu, który automatycznie zwiększa numer kompilacji. Jeśli usunę ten skrypt, podgląd będzie działał zgodnie z przeznaczeniem.

Więc jeśli masz ten problem, usuń cokolwiek z menu Cel -> Fazy kompilacji -> Uruchom skrypt i spróbuj ponownie. Podgląd kanwy powinien zostać zaktualizowany zgodnie z oczekiwaniami.


1
Nie mam żadnych skryptów kompilacji, ale nadal pojawia się ten problem w Xcode 11.2.1.
Isuru

Ta sama rzecz. Używam Xcode 11.3 i nagle zaczęło się to dziać, a usunięcie faz skryptu nie naprawia tego.
Pacu

1
Ten sam problem tutaj z Xcode 11.3.1 działającym na 10.15.2 (bez skryptów). Jeśli kliknę „Wznów”, panel obszaru roboczego po prostu zniknie, a ostrzeżenie zostanie ponownie wyświetlone po ponownym otwarciu obszaru roboczego. Zrezygnowałem ze SwiftUI w wersji beta w zeszłym roku po napotkaniu zbyt wielu błędów, wróciłem do niego myśląc, że na pewno zadziała teraz, ale nie. Narzędzia są kompletnym śmieciem i w ogóle nie działają. Nawet tworząc zupełnie nowy, czysty projekt Swift UI, jest on zepsuty od samego początku. Mam nadzieję, że Apple naprawi te okropne błędy, ponieważ SwiftUI ma wiele obietnic, ale pozostawia niesmak w ustach programistów. Może Xcode 12 + 10,6.
Ben Stahl

Dzięki za podpowiedź, to pomogło. Pamiętaj jednak, że może to wpłynąć na każdy skrypt uruchamiany w każdym celu, który będzie zawarty w Twojej aplikacji, np. Rozszerzenia aplikacji i Oglądaj aplikacje.
Koraktor

Dzięki, miałem ten problem, ale był to skrypt wersji działający we wbudowanym frameworku, który wstrzymywałby podgląd. Byłem na zupełnie złym tropie, myśląc, że to ma coś wspólnego z danymi podstawowymi i podglądami.
dlemex

3

Dla mnie Canvas nie działało, gdy miałem Legacy Build System.

Możesz to zmienić za pomocą,

Plik -> Ustawienia obszaru roboczego -> System budowania -> Wybierz „Nowy system budowania (domyślnie).

Jak mówi, jest to opcja domyślna. Jeśli z jakiegokolwiek powodu zostanie wybrany system kompilacji Legacy, Canvas nie będzie działać.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.