⚙️

SwiftUI Preview機能のエラー画面とバグ表示の解決

2024/11/10に公開

SwiftUI Preview機能のエラー表示

SwiftUIでPreview画面を表示する際にXcode16からエラーが表示されるようになりました。
Preview表示するiPhoneの機種をiOS18以外にしてiOS17などにするとエラーにはなりません。
iOSを18にするとなぜか発生します。
しかし、この現象はXcode16.1でも改善されていません。

解決方法


Xcodeのメニュー画面から「Editor」画面の上にある「Canvas」にチェックが入っているのを確認して下さい。
そして、下にも「Canvas」の欄があるので選択して画面を見ます。


1番下にある「Use Legacy Previews Execution」にチェックを入れます。
これでPreview画面を読み込んで下さい。これで表示されるようになります。


SwiftUI Preview表示のバグ画面

自分も経験あるのですが、変な画面が表示されます。
https://x.com/alpennec/status/1844372173366100359
こういう画面です。
こういう場合は、Xcodeの再起動でも直るのですが書いてあるようにPreviewのキャッシュを削除するコマンドが良いと思います。

解決方法

XcodeのPreview画面キャッシュ一括削除コマンド

xcrun simctl --set previews delete all

コピペできます。


自分の場合コマンドを入力すると以下のエラー表示で削除できませんでした。

xcrun: error: unable to find utility "simctl", not a developer tool or in PATH

Xcode自体はずっと使っているのでインストールはされているのですが、保存してある場所が違っていました。
Finderのダウンロード画面にずっと本体が置きっぱなしになっていたのでそれをアプリケーション画面にドロップ&ドラッグで移動します。

Xcode.appを移動しました。
これでキャッシュコマンドを入力して、キャッシュ削除が開始されます。
3〜5分ぐらいはかかりました。

Using Previews Device
Set:'/Users/◯◯◯◯◯◯◯/Library/Developer/Xcode/UserDat
a/Previews/Simulator Devices'

この画面が表示されたら削除完了です。
ちなみに削除してもUse Legacy Previews Executionにチェックを入れているPreview画面は改善せずそのままなのでチェックは入れては外さずそのままの方が良いです。


参考

https://qiita.com/haru_hare/items/2e9e1be47769a2780c97

Discussion