SwiftUI:常に自動プレビュー更新が一時停止されました


12

私は既存のアプリ、基本的には買い物リストアプリを持っていますが、それに甘い甘いSwiftUIのロビンを追加しようとしています。

私の問題は、リアルタイムプレビューの更新が機能しないことです。「自動プレビューの更新が一時停止しました」という警告が継続的に表示されます。再開ボタンを押すと、アプリがビルドされ、現在のビューが表示され、その警告がすぐに再び表示されます。再開ボタンを使用しないと、キャンバスに反映されたコードの変更を確認できません。

これはXcode 11.1と11.2ベータ2で発生しています。SOでも文字通りこれに関する言及はありません。AppleのDevフォーラムには回答のないスレッドが1つあります。


ライブプレビューも頻繁に一時停止することに気付きました...一時停止しない変更できる唯一のことは、テキストビューに表示されるテキストの調整などの非常に小さなことだけです...そのような小さな変更も行います一時停止させますか?
Quinn

@Quinn-はい、変更を加える前に、警告と再開ボタンが表示されます。それらは、再開ビルドが完了してプレビューが表示される前でも表示されます。履歴書を使用せずに表示されている変更を行うことはできません。
ブライアンM

回答:


6

ビルドフェーズにカスタムのスクリプト実行フェーズがあり、それらを削除したくない(またはできない)場合は、[インストール時にのみスクリプトを実行する]チェックボックスをオンにしてみてください。

ここに画像の説明を入力してください


これが私の場合に原因でした-ビルド番号を自動インクリメントするスクリプトがありました。ナイスキャッチ。ありがとう。
raffjones

良い答え-これは機能性をそのまま維持するため、Appleサポートが私に指示したよりも優れています。承認された回答をあなたの質問に移動しました:)
ブライアンM

8

私は結局Appleにフィードバックを送ることになりました、そして彼らは修正で応答しました。ターゲットにビルド番号を自動インクリメントするビルドスクリプトがあります。そのスクリプトを削除すると、プレビューは意図したとおりに機能します。

したがって、この問題が発生している場合は、[ターゲット]-> [ビルドフェーズ]-> [スクリプトの実行]で何かを削除して、再試行してください。キャンバスプレビューは期待どおりに更新されます。


1
ビルドスクリプトはありませんが、Xcode 11.2.1でもこの問題が発生します。
Isuru

同じこと。私はXcode 11.3を実行していますが、突然これが起こり始め、スクリプトフェーズを削除しても修正されません。
Pacu

1
10.15.2で実行されているXcode 11.3.1(スクリプトなし)でも同じ問題が発生します。[再開]をクリックすると、キャンバスペインが消え、キャンバスを再度開くと警告が表示されます。昨年、多くのバグに遭遇したため、ベータ版のSwiftUIをあきらめましたが、きっとうまくいくと思いながら戻ってきましたが、違います。ツールは完全なゴミであり、まったく機能しません。まったく新しいクリーンなSwift UIプロジェクトを作成しても、すぐに壊れてしまいます。SwiftUIには多くの約束があるので、Appleがこれらのひどいバグを修正してくれることを願っていますが、開発者の口には悪い味が残っています。多分Xcode 12 + 10.6。
ベンスタール

ヒントをありがとう、これは役に立ちました。ただし、これは、アプリ拡張機能や時計アプリなど、アプリに含まれるすべてのターゲットのすべての実行スクリプトに影響を与える可能性があることに注意してください。
Koraktor

おかげで、私はこの問題を抱えていましたが、それは埋め込まれたフレームワークで実行されているバージョンスクリプトで、プレビューが一時停止しました。Core Dataとプレビューと関係があると思っていたので、私はまったく間違った方向に進んでいました。
dlemex

3

私にとって、レガシービルドシステムを使用していたとき、Canvasは機能しませんでした。

変更できます

[ファイル]-> [ワークスペース設定]-> [ビルドシステム]-> [新しいビルドシステム(デフォルト)]を選択します。

それが言うように、それはデフォルトのオプションです。何らかの理由でレガシービルドシステムが選択された場合、Canvasは機能しません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.