web-dev-qa-db-ja.com

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

奇妙なエラーが発生しています:'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
55
Carpetfizz

プロジェクトのinfo.plistを開き、スクリーンショットに表示されている選択した行を削除しますenter image description here

黒い画面が表示される場合は、新しい初期ストーリーボードがメインインターフェイスとして選択されていることを確認してください enter image description here

76
Kalpit Gajera

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

次のようになります。

Target Membership

51
Geekoder

電話からアプリを削除し、[製品]-> [クリーン]を実行して、再度ロードしました。それは私にかかったすべてです。

14
user1021430

このエラーが発生しましたが、ストーリーボードを完全に削除するつもりでした。

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

8
kraftydevil

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

考えられる理由:

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

解像度:

  1. Main.storyboardファイルを選択し、削除しようとしました。次のようにポップアップするダイアログから: enter image description here

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

  3. 次に、プロジェクトディレクトリ内のMain.storyboardファイルを見つけることができる実際の場所から、XCodeにドラッグアンドドロップし、再び次のようにポップアップするダイアログから: enter image description here

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

    enter image description here

    注:ここで思い出す重要なことは、アプリの「ターゲットに追加」チェックボックスをオンにすることを忘れないでください。

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

これが他の誰かに役立つことを願っています! XCode 7.3.1とiOS Sim 9.3およびiPhone 6Sでこれを試しました!

7
Randika Vishman

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

main.storyboard-> only mainはストーリーボード名です

6
user2580666

手順に従ってください:

1)まず、ストーリーボードをクリックします

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

3)次に、「ターゲットメンバーシップ」を選択します

Screen Shot

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

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

1
Mavin Martin

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

1
seashore liu

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

  • ファイル->ワークスペース(またはプロジェクト)設定Legacy Build Systemに切り替えます。

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

上記の修正のいずれかを適用した後、製品メニューからClean Build Folderを一度確認してください。そうしないと、修正が正しく機能しない可能性があります。

1
LentoMan

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

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

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

0
Craig D

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

2つのビュー間にシーク接続を追加し、プロジェクト構成で展開ターゲットが8.0未満になると、このエラーが発生します。

[OK]、IOS 6.0(たとえば)で開発する場合、SequeはIOS 8.0以降を必要とするため、Sequeを使用できません。.....;-)

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

0
Sven Vietense

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

0
iSpeedyG

これは、シミュレータでアプリを実行しようとしたときに思いついたものです。ファイルが存在し、実行しようとしたターゲットのメンバーです。

Product->Clean

0
Ben Thielker

Main.Storyboardファイルを「ブルー」サブフォルダーに移動して問題を引き起こしていました。これらの指示に従ってサブフォルダーを追加する必要がありました Xcode 6.3 New File Issue

main.Storyboardファイルを黄色のサブフォルダに移動するとうまくいきました

0
Aqib Mumtaz

main.storyboardを選択し、iOS 6.1以前のようにビューを変更すると、xcodeは何をする必要があるかを通知します。

enter image description here

0
Chris