【watchOS】Missing or Invalid Principal Class: (ComplicationController).
概要
SwiftUIでApple Watchアプリを開発していて、どうにもコンプリケーションが表示されてくれない。ログを見ると何やらエラーが表示されてるけど、その内容通り確認しても問題なさそう。という感じでめちゃくちゃにハマってしまったので二度とハマらないためにメモります。
環境はXcode 13.3/watchOS 8.5です。
エラー内容
xxxのところはアプリ名です
xxx WatchKit Extension[17544:116415]
Missing or Invalid Principal Class: (ComplicationController).
Please check 'ClockKit Complication - Principal' Class property in WatchKit Extension's Info.plist
曰く、 ComplicationController
が見つからない、WatchKit Extensionの Info.plist
をチェックせよとのこと。
失敗パターン: Info.plist
に書く
WatchKit Extensionの Info.plist
ClockKit Complication - Principal を書いてました。
成功パターン: プロジェクトファイル(.xcodeproj
)に書く
こっちが正解でした。。。
ここを設定すると、 Info.plist
の同項目は自動的に消えてくれました。
これで無事ComplicationControllerで設定したコンプリケーションが表示されるようになりました。
考察
SwiftUIでプロジェクトを新規作成すると、iOSアプリの場合 Info.plist
の自動生成は行われません。一方、Watch Extensionの方では生成されます。Watch Extensionの方の Info.plist
は必要なのだろうか…🤔
Author And Source
この問題について(【watchOS】Missing or Invalid Principal Class: (ComplicationController).), 我々は、より多くの情報をここで見つけました https://zenn.dev/akeome/articles/74cb0730d1d94f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Collection and Share based on the CC protocol