Help us understand the problem. What is going on with this article?

【Swift】Main.StoryBoardを消して新しいStoryBoardでスタートさせるときの留意点

シミュレーターがずっと真っ暗

毎度おなじみ初心者応援記事(未来の自分への備忘録)です。
一緒に一つずつクリアしましょう。

今回はxcodeで新規プロジェクトをcreateしたときに、Main.Storyboardを消して、自作のStoryboardを起動してみようと初心者から一歩進んだ方向けかと思います。
まぁ今更感もあるかもしれませんが、探すのに苦労した自分が忘れないようにしたいのです。
アウトプット大事。

iOS12以前ではIs Initial View Controllerという項目にチェックをつけるだけで自作のStoryboardに切替られたはずでした。
スクリーンショット 2020-04-26 1.27.00.png

しかしながら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に完全に消えてもらいます。
スクリーンショット 2020-04-26 1.44.17.png
消した後に、初期画面は認証画面にしようと思いAuth.StoryboardというStoryboardを作成しました。
スクリーンショット 2020-04-26 2.00.55.png

このまま一度Runさせようとすると、もはや起動しません。
まずはIs Initial View Controllerにチェックを入れてください。
スクリーンショット 2020-04-26 1.27.00.png
(画像は使い回し)

TARGETSの変更

さて、ここで勘の良い方はTARGETS内にMain Interfaceがあることに気づいたはずです。
スクリーンショット 2020-04-26 2.02.22.png
でもこれは空白でも動きました。今回は一応Auth.Storyboardを選択しておきます。詳しいかた教えてください。

でもRunしても起動しません。

真犯人はInfo.plist

犯人はこいつだ!
ということでInfo.plist内の「Main storyboard file base name」といういかにもなプロパティがありました。こいつを直しましょう
スクリーンショット 2020-04-26 2.05.20.png

はい。

起動しません!

なんとApplication Scene Manifestというプロパティの中に真犯人がいました。
スクリーンショット 2020-04-26 2.08.38.png
こいつがMainのままや!

というわけでこいつを「Auth」にしたら起動できるはずです。

スクリーンショット 2020-04-26 2.12.57.png

お疲れ様でした。
この記事が誰かの手助けになれば、恐悦至極にございます。

ouranosu
接客サービス業しながら業務改善SE(勝手に命名)でプログラミングしてます。 独学でPythonメインにVBAとかSwiftもしてます。 自分のやってる業務を自動化するのが好きです。最近はSwiftにはまりっぱなし。というより自作で働いているところのアプリを作っている。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした