Xcodeでプレビューが表示されないときはターミナルから打ち込んで解決
初めてのSwiftUIを使ったiPhoneアプリ開発で、いそいそと書籍の指示通りにXcodeをインストールしました。そしてプロジェクトを作成して次のステップに進もうとしたところで、早速つまづきました。
何度「Resume」を押しても、表示されるはずのプレビューがどうやっても表示されません。
Runでシミュレーターを起動したときは、ちゃんとアプリが問題なく動かせるので、私が何か変なところを押したわけではないようです。けれども、なぜかCanvasのプレビューは表示できない。
前提条件
この解決法はXcodeを初めてインストールし、何も他にライブラリも導入していない、まっさらの状態での環境を想定しています。
そのため新規プロジェクトを作成し、何も手を加えていない状態なのにもかかわらず、プレビューができないという環境でお試しください。既存のプロジェクトでのエラーは他にも要因がある可能性が大です。
エラーの内容
「ContentView.swift」のCanvasにはエラーが表示されていました。もちろん、本にはそんなエラーがあるなんて書かれていません。
しかも、エラーのタイトルは一種類だけでなく、いろいろ試すと文面が変わるという親切設計(混乱するから一種類でいい)。私が出くわしたパターンはだいたいこんな感じです。
・Failed to code sign ContentView.swift
・Cannot preview in this file unexpected error occurred
・Cannot preview in this file プレビュー
・Cannot preview - Active scheme does not build file
・Unselecting the unit test options when creating the project.
エラーの詳細は以下の通りです。
HumanReadableSwiftError
CreationError: noBuildExecutor
---------------------------------------------------------------
NoBuildableEntriesError: active scheme does not build this file
Select a scheme that builds a target which contains the current
file, or add this file to a target that is built by the current scheme.
プレビューできないときの解決方法
結論から言うと、ターミナルからコマンドを入力する方法で解決できました。まずはターミナルを起動します。アプリケーション → ユーティリティ → ターミナルをクリックします。
黒い画面が表示されるので、「●●●●(自分のPC名) 〜 %」の横に、次のコマンドをコピペします。
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
パスワードの表示が求められるので、そのままパスワードを入力し、Enterキーを押します。もし他のアプリケーションに画面遷移した影響などで、次のエラーメッセージが出たら、再度パスワードを入力してEnterで確定します。
Password:
Sorry, try again.
パスワードが承認されると、再び「●●●●(自分のPC名) 〜 %」のコマンドが表示されているはずです。次に、下記のコマンドをコピペします。
sudo xcodebuild -license
すると、ライセンスのとても長い文面がつらつらと流れてきます。スペースキーを押します。また長い文章が出てきますので、再度スペースキーを押します。その作業をひたすら繰り返します(回数は覚えていませんが、そこそこ多かったと記憶しています)。
最後に「承諾するならagreeを入力せよ」という旨のメッセージ(英文)が出てきますので「agree」と入力します。
私はこの方法で、Xcodeでのプレビューが表示されるようになりました。察するに「使用許諾をターミナル経由で許可しておかないと、Xcodeのプレビューが表示されない」ということなのでしょうね。
同様の症状で困っている方、よければ一度試してみてください。