XCode aucun storyboard compilé valide au path

J'ai un projet XCode universel (ObjC) pour iPad et iPhone avec un sous-projet qui contient un storyboard. Le sous-projet est une bibliothèque statique qui a été ajoutée au projet principal. Inclus dans ce sous-projet est un set contenant storyboard bespoken.

Quand j'appuie sur un certain button de l'application, le storyboard doit être chargé;

[UIStoryboard storyboardWithName:@"UIControls.bundle/Config" bundle:nil]; 

Cela fonctionne parfaitement bien pour l'iPhone (appareils et simulateurs), mais chaque fois que j'essaie de faire fonctionner le projet sur un iPad (appareil ou simulateur), j'obtiens l'erreur suivante;

 Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'There doesn't seem to be a valid comstackd storyboard at path... 

De quoi parle-t-on? Le projet est un projet universel, alors pourquoi l'iPad ne peut-il pas find le storyboard?

Pour répondre à ma propre question

Cette erreur apparaît lorsque la cible du bundle n'est pas universelle. Assurez-vous donc que la famille de périphériques ciblés dans les parameters de construction de l'set est définie sur iPhone et iPad.

entrez la description de l'image ici

Juste couru dans ceci, après le passage d'un projet d'une cible universelle à iPad seulement, et la cible de deployment de iOS 9.0 à iOS 7.1.

La solution consistait à désactiver 'Use Size Classes' sur le storyboard, et à ne garder que les tailles pour iPad.

Pour accéder à cette checkbox, ouvrez le storyboard dans le browser de projet, puis select l'inspecteur de files (première icône) et descendez jusqu'à l'en-tête Interface Builder Document.

J'utilisais un Storyboard à partir d'un Cocoapod personnalisé et il ne cessait de s'écraser

Il ne semble pas y avoir de "storyboard compilé valide" sur le path …

Dans le story-board concerné, sous Interface Builder Document, j'ai changé la valeur "Builds for" de "iOS 7.0 ou version ultérieure" en "Project Deployment Target" (qui était 9.0), ce qui a fait l'affaire pour moi.

Je suis désolé pour mes commentaires précédents.
Je ne sais pas pourquoi cela n'a pas fonctionné, mais actuellement j'ai résolu ce problème avec les étapes suivantes:

  1. Accédez à Project Target -> Info, puis supprimez l'object KeyValue pour le nom de base du file de storyboard principal et le nom de base du file de storyboard principal (iPad) .
  2. Pour vous assurer qu'il est complètement supprimé, accédez au file Info.plist et vérifiez que les objects KeyValue n'existent pas. Si elles le sont, supprimez également à partir de là.
  3. Supprime les references à Storyboards du projet Xcode.
  4. Ajoutez des Storyboards au projet en cliquant avec le button droit de la souris sur le projet dans Xcode -> Ajouter des files à nom_projet , cochez la case Copier les éléments si nécessaire , Créer des groupes et des cibles de projet.
  5. Définissez les noms de Storyboards pour iPhone et iPad dans Project Target -> Info, en ajoutant des objects KeyValue précédemment supprimés.

A partir de maintenant, les Storyboards fonctionnent comme précédemment!

J'essayais de résoudre ce problème pendant 2 jours sans espoir jusqu'à ce que j'ai trouvé qu'il n'a pas ouvert également le dossier de DB de sqlite aussi et après que tout soit corrompu après cette panne de DB. c'était mon cas. Et tout cela était un problème de memory même si ARC mettait des arrays ou des dictionarys après avoir fini à zéro;

Dans notre cas, nous ibtool un script shell qui exécutait l'un des outils de command line de XCode, ibtool ,

 ibtool --reference-external-ssortingngs-file --errors --warnings --notices --minimum-deployment-target 6.0 --output-format human-readable-text --comstack ./Build/Release-iphonesimulator/TestApp.app/TestStoryboard.storyboardc ./Resources/TestStoryboard.storyboard --sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.2.sdk 

et bien qu'il semble fonctionner sans erreurs, il a effectivement produit un directory storyboardc vide. La mise à niveau de la cible de deployment minimale vers la version 8.0 a produit un storyboardc correctement construit, avec un file Info.plist à l'intérieur. Quand IBTool échoue / produit un directory vide, je pense vraiment qu'il devrait échouer, et cesser la compilation, parce que sinon tout a l'air d'être correctement configuré et correct, ce n'est pas le cas.

Donc oui, la solution pour nous était la mise à niveau de la cible de deployment minimum de notre application.

J'ai eu ce problème en raison de changements dans la couleur Storyboard du style Barre d'état et non modifié dans les parameters du projet

Pour moi, la solution est:

J'ai utilisé ce code pour charger un nouveau controller de vue – [UIStoryboard storyboardWithName: @ "UIViewController" bundle: nil];

J'ai d'abord essayé – [UIStoryboard storyboardWithName: @ "UIViewController" bundle: [NSBundle mainBandle]];

Mais pas de chance, finalement j'ai changé ce code pour:

[self performSegueWithIdentifier: @ Expéditeur "Segue": self];

Et ça a aidé, peut-être que ça peut aussi aider quelqu'un.