バンドルに「Main」という名前のストーリーボードが見つかりませんでした


86

奇妙なエラーが発生します: 'Could not find a storyboard named 'Main' in bundle NSBundle'実際のiOSデバイスでアプリを実行しようとするとます。

ディレクトリにファイルがあり、シミュレータで正常に動作します。ただし、このCopy Bundle Resourcesセクションでは、ファイルMain.storyboardは赤です。

私はそれを削除して再度追加し、Xcodeを再起動し、ビルドをクリーニングするなどを試みましたが、役に立ちませんでした。これは私がXcodeで受け取る警告です:

/Users/ajay/Documents/avx/avx/Base.lproj/Main.storyboard: Internationalization of /Users/ajay/Documents/avx/avx/Base.lproj/Main.storyboard is not available when compiling for targets before iOS 6.0

私はこの投稿の中で問題を解決する方法を説明しました: stackoverflow.com/a/21098195/1141395
Alex Cio 2014年

この問題は主に、アプリのインストールが破損しているために発生します。解決策は、プロジェクトをクリーンアップしてビルドすることです。また、既存のアプリをデバイス/シミュレーターから削除して、再実行してください。
クリシュナバドラ2015年

Xcode 11ユーザーの方は、stackoverflow.com / a / 58452686まで下にスクロールしてください。おそらく、まさにあなたのケースです。
セメン

回答:


93

プロジェクトのinfo.plistを開き、スクリーンショットに表示されている選択した行を削除しますここに画像の説明を入力してください

画面が黒い場合は、新しい最初のストーリーボードがメインインターフェイスとして選択されていることを確認してください ここに画像の説明を入力してください


24
おかげで、しかしこれはちょうど私のアプリを黒い画面で起動させました。ただし、クラッシュはありません。
Carpetfizz 2013年

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions ... :( 1)self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen]境界]]; (2)self.window.backgroundColor = [UIColor whiteColor];
Joel Hansen 2014年

@ Carpetfizz Add '[self.window makeKeyAndVisible];' AppDelegateに。
アルセルダ2015

4
「黒い画面でアプリを起動する」、誰もこれについて何も考えていませんか?
Umit Kaya

@Umitkは、背景を白(view.backgroundColor = .white)またはその他の好きな色に設定します
StephanePaquet19年

65

Xcode 11でこの問題に直面している人のために、ストーリーボードレスプロジェクトのセットアップを行っているときにこの問題に直面した場合の修正方法は次のとおりです。

ricardopereiraが見逃したいくつかのパーツを追加)

1)まず、Main.storyboardファイルを削除します

2)次に、PROJECT_NAME- > GENERALに移動します

メインインターフェイスのドロップダウンで、テキストMainを削除します

一般設定からメインへの参照を削除する

3)info.plistにアクセスして、ストーリーボード名を削除します

info.plistからストーリーボードへの参照を削除する

4)最後に、変更シーン(_:willConnectTo:オプション)ファイル内のコードSceneDelegate.swift(はいそれはもうアプリケーションの委任ではありません)!。

var window: UIWindow?


    func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
        // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`.
        // If using a storyboard, the `window` property will automatically be initialized and attached to the scene.
        // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead).
        guard let windowScene = (scene as? UIWindowScene) else { return }
        window = UIWindow(frame: windowScene.coordinateSpace.bounds)
        window?.windowScene = windowScene
        window?.rootViewController = ViewController()
        window?.makeKeyAndVisible()
    }

代わりにこのビデオを参照することもできますhttps//www.youtube.com/watch?v = Htn4h51BQsk


3
あなたの答えは、ほぼ正確であるだけでシーン機能にはほとんど変化があります: guard let _ = (scene as? UIWindowScene) else { return } let viewController = ViewController() if let windowScene = scene as? UIWindowScene { self.window = UIWindow(windowScene: windowScene) self.window?.rootViewController = viewController self.window?.makeKeyAndVisible() }
レザDehnavi

3
さらに強調すると、info.plistエントリは、通常のメインストーリーボードエントリであるだけでなく、iOS13で新しく追加されたアプリケーションシーンマニフェストのエントリでもあります。気付く前に2回読み通す必要がありました。
jboulter 1119

これが今の正しいやり方です!^^ Appleは物事を変え続けました。
YuchenZhong20年

59

ストーリーボードの対象メンバーシップを確認できます。問題がある場所があるかもしれません:

次のようになります。

ターゲットメンバーシップ


同じ問題が発生し、最初は適切なリソースをターゲットにコピーしていないと思いましたが、ターゲットのメンバーシップを修正すると問題が修正されました。
pyj 2014年

2
ありがとう、働いた!私は喜びもなく、クリーンアップ、ファイル名の変更、Plistの更新を行いました。それは常にあなたを得る最も明白です。
ジムゲルダーマン2015

こんにちは、私は同じ問題を抱えていますが、ターゲットメンバーシップウィンドウが表示されていません、
Xcode7

どういうわけか、私のターゲットは選択されませんでした..この答えをありがとう..解決しました!!
Ümañgßürmån

39

iOS13.0以降用に作成されたアプリケーションのアップデート。(Xcode 11)

info.plistの「MainstoryboardFile basename」と「DeploymentinTarget」の「MainInterface」を変更しても、「Main」という名前のストーリーボードがバンドルに見つかりませんでした。

次に、info.plistファイルの別のエントリを変更する必要があります。

  1. info.plistファイルを開きます。
  2. 「アプリケーションシーンマニフェスト」を展開します。
  3. 「シーン構成」を展開します。
  4. 「アプリケーションセッションの役割」の下の項目0を展開し、そこでストーリーボード名を変更します。

ここに画像の説明を入力してください

そして、アプリケーションが動作を開始します。


1
これは絶対に正しい答えです。[一般]> [メインインターフェイス]ドロップダウンからメインストーリーボードを設定するだけでは明らかに不十分です。
NRitH

1
これをありがとう。「ApplicationSceneManifest」キー(およびそのすべてのサブキー)を削除すると、問題が解決しました。
グレッグブラウン

1
私はliterately何が起こったのかわからないが、これは作品である
Bawantha

1
あなたは私の命を救った:)
Yusuf KamilAK20年

17

UISceneiOS13およびXcode11で使用するプロジェクトでは、UISceneStoryboardFileキーをから削除する必要があります。.plist

Xcode 11:

xcode11-uiscene

ファイルから直接変更する:

uiscene-plist


15

スマートフォンからアプリを削除し、[製品]-> [クリーン]を実行して、再度ロードしました。それが私にとって必要なすべてです。


削除はその私を実行する場合にのみ、すべての実行のための... Xcodeの10.1で私を助けてください
アルナM

12

このエラーが発生しましたが、ストーリーボードを完全に削除することが私の意図でした。

plistから「メインストーリーボードファイルのベース名」キーを削除すると、エラーが解決しました。


10

バンドルに「Main」という名前のストーリーボードが見つかりませんでした

私が考えることができる理由:

私のiOSの知識が私を結論付けた限り、これはXCodeがプロジェクトディレクトリ内のMain.storyboardファイルへの参照を見つけてアプリにコピーできなかったために発生しました。

解決:

  1. Main.storyboardファイルを選択して削除しようとしましたが、次のようにポップアップするダイアログから: ここに画像の説明を入力してください

  2. 「参照の削除」ボタンをクリックしました。

  3. 次に、プロジェクトディレクトリ内でMain.storyboardファイルを見つけた実際の場所から、XCodeにドラッグアンドドロップし、次のようにポップアップするダイアログから再度実行します。 ここに画像の説明を入力してください

  4. 「フォルダー参照の作成」を選択しました(プロジェクトのファイルとフォルダー構造を変更したため、これを意図したことの1つであるため)。ただし、ほとんどの場合、[グループの作成]を選択しても機能する可能性があります。そして、「完了」ボタンをクリックしました。私のストーリーボードファイルは、スクリーンショットに示されているように、すでにBase.lproj次のディレクトリ内にあります。

    ここに画像の説明を入力してください

    注:このステップでここで覚えておくべき重要なことの1つは、アプリの[ターゲットに追加]チェックボックスをオンにすることを忘れないでください。

  5. 製品をクリーンアップして再構築します。成功した場合は、ほとんどの場合、実行してみてください。

これが他の誰かに役立つかもしれないことを願っています!XCode7.3.1とiOSSim9.3およびiPhone6Sでこれを試しました!


os10.14.1とxc0de10.1..amをインストールした後、これもこの問題に直面しているので、3日から解決しようとしていますが、それでも..私のプロジェクトはxcode9.1で正常に動作します。–
Aruna M

@ArunaM私が答えで与えた上記のステップを試しましたか?これを行った後の状況はどうでしたか?
RandikaVishman18年

1
これは、同じエラーの原因となったプロジェクトからViewControllerを削除したときの解決策でした。
SlartyBartfast20年

8

手順に従ってください:

1)最初にストーリーボードをクリックします

2)次に、[ファイルインスペクター]をクリックします

3)次に「対象会員」を選択します

スクリーンショット


6

シミュレータでは大文字と小文字は区別されませんが、デバイスでは大文字と小文字が区別されます。ストーリーボードがMainStoryBoardではなくMainStoryboardと呼ばれている場合、これにより問題が発生します。およびaslo *拡張機能を使用しないでくださいストーリーボード名のみを書き込んでください

main.storyboard-> mainのみがストーリーボード名です


6

Swift 5.1&xCode 11.2

私の場合、変更Storyboard Nameするのを忘れましたInfo.plist

ここに画像の説明を入力してください

Info.plist ソースコード

    <dict>
        <key>UIApplicationSupportsMultipleScenes</key>
        <false/>
        <key>UISceneConfigurations</key>
        <dict>
            <key>UIWindowSceneSessionRoleApplication</key>
            <array>
                <dict>
                    <key>UISceneConfigurationName</key>
                    <string>Default Configuration</string>
                    <key>UISceneDelegateClassName</key>
                    <string>$(PRODUCT_MODULE_NAME).SceneDelegate</string>
                    <key>UISceneStoryboardFile</key>
                    <string>AccountViewController</string>
                </dict>
            </array>
        </dict>
    </dict>

4
  1. ストーリーボードファイルを開きます
  2. 次に、[ファイルインスペクター]をクリックします
  3. 次に、「ターゲットメンバーシップ」を選択し、プロジェクトを確認します
  4. ViewControllerファイルについても同じことを行います !!!ストーリーボードでViewController.swiftまたはViewController.mを使用する場合は重要な部分です!!!

4

このエラーは、ファイルを削除した後にごみ箱からmain.storyboardファイルを回復するときに発生します。私も昨日同じ問題に直面しました。

main.storyboardのファイルインスペクターで、main.storyboardのロケーションパスをグループを基準として設定する必要があります。その後、同じ属性で、アプリターゲットのチェックマークをオンにする必要があります(添付の画像で確認できます)。

ここに画像の説明を入力してください


2

Xcode 10.1にアップグレードした後、私のために働いた2つの異なるソリューション:

  • [ファイル] - > [ワークスペース(またはプロジェクト)の設定レガシービルドシステムに切り替えます。

  • ターゲットのビルドフェーズでバンドルリソースのコピー(リストされている場合)からBase.lprojフォルダーを削除し、代わりに各ストーリーボードがリストされて個別にコピーされていることを確認します。

上記の修正のいずれかを適用した後、[製品]メニューからビルドフォルダを一度クリーンアップしてください。そうしないと、修正が正しく機能しない可能性があります。


1

plistの行を削除すると、アプリでも黒い画面が表示されました。ストーリーボードのターゲットメンバーシップを有効にして修正しました


1

Kalpit Gajeraが言ったように、「プロジェクトのinfo.plistを開き、スクリーンショットに表示されている選択した行を削除します」。Info.plistから「メインストーリーボードファイルのベース名」を削除するだけです。それを削除し、クリーンアップして実行すると、プログラムは失敗しなくなりますが、黒い画面が表示されます。Info.plistを再度開き、手動で行を追加し直します。問題は解決しました。


0

main.storyboardを選択し、ビューをiOS 6.1以前に変更すると、xcodeが何をする必要があるかを教えてくれます。

ここに画像の説明を入力してください


0

私の解決策は次のとおりです。

2つのビュー間にシーク接続を追加し、プロジェクト構成でデプロイメントターゲットが8.0未満の場合、このエラーが発生します。

わかりました。IOS6.0用に開発するときは簡単に理解できます(たとえば)SequeにはIOS 8.0以降が必要なため、Sequeを使用することはできません...... ;-)

そのため、Deployment Targetを8.0に設定すると、エラーはなくなりました!!!! それ以外の場合、私はすべてのセグエ接続をキャンセルし、IBAction、古い学校でそれを処理します;-)


0

Main.Storyboardファイルを「青い」サブフォルダーに移動していたため、問題が発生していました。次の手順に従ってサブフォルダーを追加する必要がありました。Xcode6.3 新しいファイルの問題

次に、Main.Storyboardファイルを黄色のサブフォルダーに移動しました。


0

私の問題は、.xmlからサフィックスを削除することで解決しましたMain.storyboard.xml file

どうやら、サフィックスは私がプロジェクトをインポートしたバージョンから変更されました。

したがって、ファイルの名前を変更して(.xmlサフィックスを削除して)再起動してからProject-> clean....、問題を修正しました。


0

それでも黒い画面が表示される場合は、シーンデリゲートに以下のコードを追加してみてください

willConnectTo

    guard let windowScene = (scene as? UIWindowScene) else { return }
    window = UIWindow(frame: windowScene.coordinateSpace.bounds)
    window?.windowScene = windowScene
    let navController = UINavigationController()
    let mainstoryboard:UIStoryboard = UIStoryboard(name: "Your storyboard name", bundle: nil)
    let initialController = mainstoryboard.instantiateViewController(withIdentifier: "your initial controller Identifier") as! initialController
    navController.addChild(initialController)
    window?.rootViewController = navController
    window?.makeKeyAndVisible()

0

ストーリーボードがプロジェクトに追加されている場合(xcodeユーティリティ領域のプロジェクトファイルインスペクターセクションから決定します)ターゲットメンバーシップエリアでチェックボックスがマークされている

Main.Storyboard「バンドルリソースのコピー」(内Build Phase)から削除して、「バンドルリソースのコピー」に再度追加するだけです。これは私のために働いた。ここに画像の説明を入力してください


-1

わかりました、これはプロセスです。いろいろなことをやってみます。OS10.11でxcode6.4を実行します。「メイン」の問題が見つかりません。私が最終的に行ったのは、デスクトップのmain.storyboardをFinderから移動することでした。クリーンアップを実行し、xcodeをビルドして終了しました。xcodeを再起動すると、main.storyboardが赤になります。私はそれを実行すると、実質的に同じことをします。次に、プロジェクトフォルダを右クリックし、[ファイルの追加先]オプションを選択します...現在の場所を参照して開きます。次に、右側にある場合は、IDインスペクターが必要です。場所の下にある小さなフォルダをクリックします。そのフォルダをもう一度参照して、[選択]を選択します。それから私は走りました、そしてそれは働きました。アーメン!!!


-1

ストーリーボードの左側のリストに最初に表示するビューコントローラーを選択し、属性インスペクターでタイトルが「メイン」になっていることと、「初期ビューコントローラーか」のチェックボックスが選択されていることを確認します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.