🐛Thread 1: Fatal error: SwiftUI Scene ImmersiveSpace requires a UISceneSessionRole of "UISceneSessionRoleImmersiveSpaceApplication" for key UIApplicationPreferredDefaultSceneSessionRole in the Application Scene Manifest.とvisonOSエラーの対処法を探求

VisonOS向けのXcpde15をbeta4からbeta8にしたらいろいろなサンプルが動くようになったけど、まだ動かないものがある。例はこれで、実行してからスレッドが致命的なエラーをだすよう。

翻訳したとて意味はこんな感じで

スレッド 1: 致命的なエラー: SwiftUI Scene ImmersiveSpace はアプリケーションシーンマニフェストのキー UIApplicationPreferredDefaultSceneSessionRole に対して "UISceneSessionRoleImmersiveSpaceApplication" の UISceneSessionRole を必要とします。

キー名が超絶長いが、とりあえず説明を見ていこう。

システムはこのキーを参照して、アプリの最初のシーンを作成するための優先的な初期シーンセッションロールを決定します。UISceneSessionRoleImmersiveSpaceApplication または CPSceneSessionRoleImmersiveSpaceApplication を指定すると、システムは起動時にアプリケーションに接続する没入空間のシーンを作成します。UISceneSessionRoleImmersiveSpaceApplication が最初に使用するスタイルを定義するには、 UISceneInitialImmersionStyle キーを使用します。

https://developer.apple.com/documentation/bundleresources/information_property_list/uiapplicationpreferreddefaultscenesessionrole

相変わらずどこの何について話しているのかはわからないのだが

さまざまな種類の実行可能ファイルを表すバンドルには、情報プロパティ・リスト・ファイルが含まれています。このキーと値のペアのコレクションは、システムが関連するバンドルをどのように解釈すべきかを指定します。いくつかのキーと値のペアは、バンドル自体を特徴付け、他のものは、アプリ、フレームワーク、またはバンドルが表す他のエンティティを構成します。いくつかのキーは必須であり、他のキーは実行可能ファイルの特定の機能に固有です。
情報プロパティリストファイルは、常に Info.plist という名前を持っています。ファイル名は大文字と小文字を区別し、大文字の I で始まる必要があります。バンドル内の場所は、バンドルの種類とプラットフォームによって異なります。例えば、iOS アプリのバンドルでは、ファイルはバンドルのルートディレクトリに保存されますが、macOS アプリのバンドルでは、Info.plist ファイルは Contents ディレクトリに保存されます。
情報プロパティリストにアクセスするには、ディスク上のバンドルを表す Bundle クラスのインスタンスを使用します。バンドルインスタンスのプロパティにアクセスすることで、いくつかの共通キーの値を取得できます。例えば、bundleIdentifier プロパティには、CFBundleIdentifier キーに関連付けられた値が含まれています。object(forInfoDictionaryKey:) メソッドを使用すると、任意のキーの値を取得できます。
バンドル用の情報プロパティリストを作成するには、通常、アプリの情報プロパティリストの管理で説明したように、アプリや他の実行可能ターゲットのファイルを準備するために Xcode に依存します。

https://developer.apple.com/documentation/bundleresources/information_property_list


フムフム

info.plistに追加する必要があるようです。Volumetricでも同様のエラーに遭遇しました。新規プロジェクト作成時に設定することで自動的にinfo.plistに追加されるのですが、新規プロジェクト作成時とは異なるコンポーネントなどを使用するとエラーが発生するようです。

https://developer.apple.com/forums/thread/732336

キャッシュ的な何かなのか、パース的な何かなのか。。。

セッション・ロールのシーン設定を指定するには、このキーを使用します。各シーン構成は、デバイスに表示するコンテンツに使用するものに対応します。配列の最初の項目は、このロールのデフォルトシーン構成を表します。UIAPpplicationPreferredDefaultSceneSessionRoleを使用して、アプリに優先する初期シーンセッションロールを示します。

UISceneSessionRoleImmersiveSpaceApplicationのほうがキーということか。。。

没入型スペース シーンは、カスタム シーン デリゲート クラスまたはシーン サブクラスのサポートを提供しません。システムは、 UISceneSessionRoleImmersiveSpaceApplication 辞書で提供された UISceneClassName、UISceneStoryboardFile、および UISceneDelegateClassName キーを無視します。

お願い致します