シミュレーターがずっと真っ暗
毎度おなじみ初心者応援記事(未来の自分への備忘録)です。
一緒に一つずつクリアしましょう。
今回はxcodeで新規プロジェクトをcreateしたときに、Main.Storyboardを消して、自作のStoryboardを起動してみようと初心者から一歩進んだ方向けかと思います。
まぁ今更感もあるかもしれませんが、探すのに苦労した自分が忘れないようにしたいのです。
アウトプット大事。
iOS12以前ではIs Initial View Controllerという項目にチェックをつけるだけで自作のStoryboardに切替られたはずでした。
しかしながらiOS13からiPadで同一アプリを複数画面で起動できるようにしたとかしてないとかっていう頭がいいのか悪いのかわからない使い方ができる(?)ようになった関係で、いろいろと仕様変更があったようです。
詳しくは@omochimetaru様のiOS13のSceneDelegate周りのアプリの起動シーケンスで書かれてます。
まぁ僕のような初心者には何度読み返しても仕様が変わったんだなということしか理解できないのですが、この為に一手間加えないといつまでもシミュレート起動できないことになりました。
いつまでもログに「Failed to instantiate the default view controller for UIMainStoryboardFile 'Main' - perhaps the designated entry point is not set?」と表示されていろいろいじってみても治らず、頭を捻っている方への処方箋となれば幸いです。
なお、今回はStoryboardを使って行きます。コードだけで書かれる方には非対応ですので、ご了承ください。
脱・Main.Storyboard、脱・超初心者
早速行きましょう
さっさとMain.Storyboardを削除します。
↓のような選択が表示されますが、Move To Trashでいいと思います。これは表面上は消えるけど、プロジェクトフォルダには残す?残さない?という問いで、今回はMainに完全に消えてもらいます。
消した後に、初期画面は認証画面にしようと思いAuth.StoryboardというStoryboardを作成しました。
このまま一度Runさせようとすると、もはや起動しません。
まずはIs Initial View Controllerにチェックを入れてください。
(画像は使い回し)
TARGETSの変更
さて、ここで勘の良い方はTARGETS内にMain Interfaceがあることに気づいたはずです。
でもこれは空白でも動きました。今回は一応Auth.Storyboardを選択しておきます。詳しいかた教えてください。
でもRunしても起動しません。
真犯人はInfo.plist
犯人はこいつだ!
ということでInfo.plist内の「Main storyboard file base name」といういかにもなプロパティがありました。こいつを直しましょう
はい。
起動しません!
なんとApplication Scene Manifestというプロパティの中に真犯人がいました。
こいつがMainのままや!
というわけでこいつを「Auth」にしたら起動できるはずです。
お疲れ様でした。
この記事が誰かの手助けになれば、恐悦至極にございます。