Je n'ai pas trouvé de storyboard nommé "MainStoryBoard" dans bundle NSBundle

j'ai démarré une nouvelle application il y a quelques jours et j'ai commencé à travailler avec le simulateur pour la tester. J'ai commencé comme un projet vide et j'ai ajouté manuellement le storyboard. Le simulateur construit et exécute mon application très bien, mais quand j'essaie de construire sur mon iPhone je reçois le message ' N'a pas pu trouver un storyboard nommé 'MainStoryBoard' dans bundle NSBundle ".

Google n'a rien trouvé et cette question suggéré que j'ai vérifié mon objectif pour le scénario, mais tout est en place. Même ainsi, si quelque chose n'était pas en place, le simulateur ne fonctionnerait pas non plus.

quelqu'un peut-il m'indiquer la bonne direction?

41
demandé sur Community 2012-01-01 22:35:59

26 réponses

Le simulateur n'est pas sensible à la casse, mais le périphérique est. Si votre storyboard s'appelle MainStoryboard, et non MainStoryBoard, cela causera votre problème.

33
répondu jrturton 2012-01-08 07:16:12

j'ai fait fonctionner mon application normalement sur le simulateur iPhone mais étrangement Xcode a cessé de répondre et j'ai dû forcer à quitter Xcode. Quand J'ai redémarré Xcode que j'ai rencontré "N'a pas pu trouver un storyboard nommé MainStoryboard....",

j'ai corrigé cette question en suivant les étapes ci-dessous:

  1. Rename" MainStoryboard.storyboard " à " MainStoryboard_1.storyboard "
  2. ouvrir le fichier " $your_app$ - Info.plist" qui se trouve dans "Prise en charge des Fichiers du dossier". Éditer " nom de base du fichier storyboard principal "en" MainStoryboard_1.storyboard."
  3. a relancé l'application, et ça a marché pour moi.
  4. j'ai renommé mon fichier storyboard de nouveau à son" MainStoryboard original.storyboard."
  5. Édité le .fichier plist de retour à son origine.
  6. a relancé l'application, et ça a marché pour moi.

Pour une raison quelconque, le fichier "MainStoryboard.storyboard" a été non reconnu après le départ de force Xcode et suivant les étapes ci-dessus a fait l'application reconnaître le fichier à nouveau.

Espérons que cette solution vous aide..

75
répondu Sushma Satish 2012-02-21 10:46:44

je veux juste mentionner le scénario que j'ai rencontré. Je ne sais pas comment, mais storyboard s'est déconnecté de la cible bien qu'il fasse toujours partie du projet. Pour corriger ce problème, j'ai ouvert storyboard, sélectionné "File Inspector"(icône à gauche sur le panneau de droite) et vérifié le projet sous "Target membership". Espérons que cela aide quelqu'un.

22
répondu Ilya K. 2014-07-01 13:56:39

le problème se produit lorsque vous désélectionnez" Utiliser L'internationalisation de la Base " et que vous exécutez un simulateur dans des emplacements différents plutôt que dans votre localisation spécifique.

par exemple, vous spécifiez une Localisation zh-CN dans le cadre du projet, mais exécutez le simulateur sous en-US.

8
répondu Igotit 2014-03-18 05:10:31

a essayé toutes les solutions mentionnées ci-dessus mais n'a pas fonctionné.

après des recherches approfondies a trouvé le coupable:

la ressource du paquet de copies était manquante dans les cibles - > phases de construction

cela a été enlevé accidentellement tout en enlevant des Cocoapods.

ci-dessous sont les étapes pour corriger ceci:

  1. passer à TARGETS de votre projet
  2. cliquez sur plus (+) button présent dans le coin supérieur gauche
  3. Sélectionnez Nouvelle Copie de Bundle de Ressources à partir de la liste déroulante
  4. Maintenant, ajoutez Storyboard files (Main, Launchscreen etc). ajoutez aussi le dossier des actifs. Vous pouvez ajouter ces fichiers en cliquant sur le bouton plus (+) présent en bas de la page

screenshot

  1. supprimer le derived data content
  2. Delete the app
6
répondu Jayprakash Dubey 2017-02-16 11:00:29

je pensais que vous aviez peut-être supprimé le storyboard et décidé d'utiliser un .fichier xib lors du lancement initial de l'application. Dans ce scénario, Xcode essaierait de trouver un storyboard inexistant.

dans ce cas, cliquez sur le projet > Info > Custom iOS Target Properties et supprimez cette paire de valeurs.: Main storyboard file base name

4
répondu Venkatesh G 2015-06-24 01:57:54

cela m'a aidé (Swift 2.1, Xcode 7.2) pour une application avec une barre d'onglets

    let storyboard: UIStoryboard = UIStoryboard(name:"Main",bundle: NSBundle(forClass: self.dynamicType))
    let tabController = storyboard.instantiateViewControllerWithIdentifier("MyTabBarIdentifier") as! UITabBarController

j'avais le Main.storyboard avec la bonne composition cible, ressources de paquet de copie, dossier de construction nettoyé, etc (la plupart des réponses pointaient vers cela).

4
répondu Nitin Alabur 2016-01-28 16:11:30

un simple nettoyage a corrigé l'erreur pour moi.

3
répondu Raphael Royer-Rivard 2015-05-28 21:30:00

Nitin Alabur la réponse m'a aidé, mais indirectement. Poster une autre réponse pour clarifier:

je construis un cadre dynamique avec un storyboard à l'intérieur, et dans l'application d'essai que je construis pour tester le cadre, je recevais cette erreur.

mon code ressemblait à ceci:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MyStoryboard" bundle:nil];

j'ignorais le truc du NSBundle parce que, hé, Je ne sais pas ce qu'est un paquet. Avérer il est important pour ce cas d'utilisation, où le storyboard existera en dehors du "faisceau" de l'application (il est dans le faisceau de mon cadre à la place). Ce code va dire à iOS de trouver le storyboard dans le paquet dans lequel la classe courante existe (qui pour moi, est le paquet qui contient mon framework):

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MyStoryboard" bundle:[NSBundle bundleForClass:[self class]]];
3
répondu manroe 2017-05-23 11:54:50

allez à votre projet, sélectionnez votre cible et retirez des menus pour re-Sélectionner vos storyboards.

aussi, vous pouvez mettre à jour votre liste, j'ai trouvé que changer l'un n'a pas changé l'autre.

2
répondu Raymond Jones 2012-11-01 14:13:23

si vous utilisez pour la navigation sur le code source, essayez d'utiliser ci-dessous le code

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle: nil];

souvent les gens entrent " Main.storyboard" pour le nom, puisque c'est littéralement le nom du fichier, mais pour les besoins de l'Obj-C de codage, "X.-le storyboard a le nom de "X", donc dans ce cas, @"Principal".

2
répondu abdul sathar 2016-08-18 06:18:31

pour éviter cela, j'ai dû changer ma façon de travailler avec les fichiers de storyboards. Après avoir édité le storyboard, sauvegardez le fichier puis quittez XCode. Cela semble éviter le problème.

1
répondu Aaron Havens 2013-02-28 21:23:02

j'ai eu ce problème quand j'ai accidentellement ouvert un projet avec une deuxième installation de Xcode. Il a cassé mes dossiers de projet de façon permanente (ce qui est compréhensible).

1
répondu John Sjölander 2013-03-07 15:22:09

ce problème est arrivé pour moi quand j'appelais storyboard en code.La raison était que j'ai utilisé un mot différent pour storyboard.Je l'ai résolu comme ceci

Aller Objectifs ->info , sélectionnez info,copier le nom de storyboard et de le coller à l'endroit où vous appelez storyboard.

donnez au moins un essai....

1
répondu Suraj K Thomas 2014-01-13 07:34:41

cela m'est arrivé lorsque j'ai fait installer sur le simulateur une application portant le même nom.

j'ai enlevé l'application précédente, re-sélectionné le Storyboard sur le" Deployment Info", relancer l'application, et tout a bien fonctionné.

1
répondu josetapadas 2014-08-16 12:14:16

vous avez juste besoin de vérifier votre fichier de configuration ( .plist ) sous Supporting files dossier

vérifiez le nom de votre storyboard par défaut.

1
répondu Gabox 2015-11-20 15:54:15

j'ai aussi eu le MÊME PROBLÈME, Ce qui a causé ce type d'exception est que j'avais écrit" Main.storyboard" au lieu de "main". Nous n'avons pas à le préciser .storyboard de l'extension.

1
répondu Waaheeda 2017-04-25 05:29:07

j'ai eu le même problème et j'avais l'erreur suivante.

exception 'NSInvalidArgumentException', reason: 'Could not find a storyboard named 'MainStoryboard_iPhone' in bundle NSBundle

je l'ai corrigé en mettant à jour le fichier plist. Il vous suffit d'aller à Edit - > Find - >Find dans L'espace de travail et de rechercher "story". Maintenant, mettez à jour le nom approprié pour le tableau.

0
répondu Gajen Sunthara 2012-03-19 20:59:47

si vous avez récemment réinitialisé votre sim iOS aux paramètres par défaut, il est également utile de vérifier les paramètres locaux dans ses préférences. Je travaille sur l'application avec le russe comme la seule locale et après sim réinitialiser le xCode arrêté pour démarrer l'application parce que la sim locale a été réglée à l'anglais.

0
répondu Arseniy 2012-12-02 18:29:49

j'ai eu cette erreur sur l'appareil quand j'ai ajouté environ 150 polices UIAppFonts .

Après que j'ai réduit leur compte à environ 100, il est parti.

0
répondu Dan Abramov 2013-01-11 04:16:53

j'ai eu ce problème dans un projet qui avait des storyboards avec et sans suffixes ~iPad ou ~iPhone, comme MainStoryboard.story board and MainStoryboard~iPad.storyboard.

le problème était ce tableau principal.le storyboard écrasait le MainStoryboard ~ iPad.storyboard quand il a été compilé dans le répertoire de compilation. Si les fichiers étaient compilés dans l'ordre inverse, les deux seraient conservés sans problème. Je n'ai aucune idée de pourquoi cela se produit.

à contournez cela, vous pouvez arrêter d'utiliser les suffixes ~iPad/iPhone ou vous assurer que les fichiers sont dans le bon ordre dans la phase de ressources de paquet de copie.

(Utilisant XCode6.2beta2)

0
répondu akiraspeirs 2015-03-23 22:00:37

un très stupide mais j'ai eu "MainStoryboard.storyboard" dans le Principal "storyboard nom de base du fichier (iPad)" entrée de mon de mon .plist au lieu de simplement "MainStoryboard".

0
répondu lorenzo 2015-03-30 14:19:30

la solution pour moi était, que j'avais juste besoin d'ajouter le MainStoryboard au Bundle Resources . Après cela, il fonctionne très bien.

Project - > Build Phases - > Copy Bundle Resources - > cliquez sur le bouton + et ajoutez votre fichier.

0
répondu Francisco Corrales Morales 2015-09-29 16:16:48

allez à vos infos.> Copiez les ressources du paquet et ajoutez votre storyboard en utilisant l'icône "+"

0
répondu Angel Guevara 2015-10-15 18:46:38

Dans mon cas, c'était un storyboard à l'intérieur d'un cadre pour une application Mac. J'utilisais:

let storyboard = NSStoryboard(name: "StoryboardName", bundle: nil)

et nécessaire d'utiliser l'Identificateur de bundle du framework pour obtenir le bundle correct:

let storyboard = NSStoryboard(name: "StoryboardName",
                            bundle: Bundle(identifier: "com.company.FrameworkName"))
0
répondu Andrew 2017-10-23 01:14:04

il y a 2 possibilités,

  1. assurez-vous que votre Storyboard est ajouté à votre cible.

Select Storyboard > Go to file inspector (first right tab) > Check Target Membership

enter image description here

  1. initialiser le storyboard avec le bon bundle .

    • si vous travaillez sur la même cible, utilisez bundle = nil
    • si le storyboard est dans une cible différente de celle sur laquelle vous travaillez, alors essayez de suivre le code pour initialiser bundle et storyboard.

      let bundle = Bundle(for: MyClass.self)
      let storyboard = UIStoryboard(name: "Main", bundle: bundle)
      
0
répondu Zaid Pathan 2017-11-04 09:49:49