Bei der Kompilierung mit Xcode 6.3 (iOS 8.3 SDK) werden unter bestimmten Umständen einige NIB-Dateinamen mit einem zusätzlichen ~ipad
oder ~iphone
enden. Zum Beispiel wird ViewController~ipad.xib
ViewController~ipad~ipad.nib
. Dies führt zu einem Absturz, da die App nicht erwartet, dass die kompilierten NIB-Dateien das doppelte Suffix haben.Xcode 6.3: NIB konnte im Bundle nicht geladen werden
Antwort
Um dies zu beheben, deaktivieren Sie "Verwendung von Größenklassen" in allen betroffenen Dokumenten in Interface Builder.
Dies scheint ein Fehler in der Version von ibtool
zu sein, die in Xcode 6.3 (und dem iOS 8.3 SDK) enthalten ist. Dies geschieht unter folgenden Umständen:
- Sie haben eine gerätespezifische Eingabedatei
*~(iphone|ipad).xib
mit aktivierten Größenklassen. - Ihr Bereitstellungsziel ist älter als iOS 8.0.
Ich war in der Lage, das Problem auf der Kommandozeile zu reproduzieren:
xcrun --sdk iphonesimulator8.3 ibtool --minimum-deployment-target 7.0 --compile ViewController~ipad.nib ViewController~ipad.xib
Wenn Sie das gleiche Verhalten sind zu sehen, bitte this radar duplizieren. Dies scheint in der neuesten Xcode 6.4 Beta behoben zu sein.
Dateifehler? Jeder, der darauf trifft, würde sich über eine Radarnummer freuen. –
Das einzige, was ich sagen würde, ist, dass wenn Sie Größenklassen deaktivieren, Sie Layouts für definierte Größenklassen verlieren, so dass diese Lösung wirklich nur funktioniert, wenn Sie nur die normale Größenklasse für iPhone und iPad verwenden. – Camsoft
@ Camsoft das ist richtig. Wir wollten unsere xibs auf bestimmte Gerätetypen ausrichten und wollten keine Größenklassen aktivieren. Wir haben einfach nicht daran gedacht, es zu deaktivieren, weil es vor Xcode 6.3 nie ein Problem war. –
Dies scheint ein Fehler von Xcode 6.3 beim Kompilieren von XIB-Dateien zu sein. Um die Ausnahmen zu umgehen gibt es 4 Optionen:
- Ziel Projekt iOS 8
- Verwenden Storyboards statt XIB Dateien
- Disable Größenklassen
- Handle NIB Laden in Code
Ich habe jede dieser Optionen in meinem Blogpost beschrieben: http://www.joobik.com/2015/04/fixing-xcode-63-ios-sdk-error-could-not.html
Änderung ~ in _ in der XIB-Name und geben Sie explizit das Suffix beim programmgesteuerten Laden des Bundles an.
Das war meine Problemumgehung zu – bdalziel
Ich hatte einige Dateien benannt mit ~ und ich habe sie umbenannt, aber es hat nicht geholfen, die Sache ist, dass ich keine XIB-Dateien habe, ich habe sogar versucht, meine Storyboards zu Größenklassen zu ändern.
Nichts hilft, habe ich Ziel iOS 7 gesetzt bauen, und ich brauche wirklich iOS zu unterstützen 7.
Ich weiß nicht, was NIB Laden Griff in Code bedeutet ...
Ein weiteres Mal das Problem ist, dass mein App im App Store begann die App in XCode 6.3 mit meinem iPad Air mit iOS 8.3 stürzt sofort mit dieser Nachricht zu einem Absturz auf iOS 8.3, und wenn versuchen, zu bauen:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: ....
Danke für die Hilfe.
Könnte es ein xib in einer Drittanbieterabhängigkeit sein? –
Nein, es gibt keine solche Sache, es gibt mir die Kennung der Komponente im Storyboard, also sehe ich welche es ist aber ich habe alles versucht, nichts hat geklappt .. –
- 1. NSInternalInconsistencyException, Grund: NIB konnte nicht im Paket geladen werden
- 2. NIB konnte nicht im Paket CocoaPods geladen werden
- 3. Ändern der ursprünglichen Ansicht Controller und Fehler erhalten 'Konnte NIB nicht im Bundle geladen werden'
- 4. 'NSInternalInconsistencyException', Grund: 'NIB konnte nicht im Paket geladen werden:' NSBundle in Xcode
- 5. Xcode 7.3 Projekt konnte nicht geladen werden
- 6. Konnte die NIB nicht im Bundle laden: 'NSBundle ··· mit dem Namen' selectedCountry ''
- 7. konnte NIB nicht
- 8. Konnte nicht geladen werden com.sun.mail.handlers.multipart_mixed
- 9. konnte nicht geladen werden CrystalDecisions.ReportAppServer.ClientDoc
- 10. AVD konnte nicht geladen werden
- 11. System.Data konnte nicht geladen werden
- 12. Xcode, Bilder werden nicht in UIImageView geladen
- 13. xcode ios Dateien nicht im Bundle erkannt
- 14. Xcode konnte nicht installiert werden
- 15. accessibilityLabel und accessibilityHint-Eigenschaften werden nicht immer von NIB geladen
- 16. Subviews nicht geladen von NIB mit initWithNibName
- 17. TwitterKit kompiliert nicht mit Xcode 6.3
- 18. Assembly "System.Xaml.Hosting" konnte nicht geladen werden
- 19. EJB-Modul konnte nicht geladen werden
- 20. konnte nicht geladen werden Anzeige: 3
- 21. dyld: Bibliothek, die nicht mit cocoapods 0,37 und Xcode 6.3 geladen
- 22. DLL 'mqrt.dll' konnte nicht geladen werden
- 23. Baugruppe/Typ konnte nicht geladen werden?
- 24. iOS 9 nicht unterstützt auf Xcode 6.3
- 25. UITableViewAutomaticDimension funktioniert nicht in Xcode 6.3
- 26. Verwendung IBOutlets/IBActions von externen geladen Nib
- 27. Erkennung konnte nicht geladen werden mit JavaScript
- 28. Die Ressource konnte nicht geladen werden ios9
- 29. 403 - Ressource konnte nicht geladen werden (verboten)
- 30. jquery-jasmine - Gerät konnte nicht geladen werden
Ich würde annehmen, dass dies das gewünschte Verhalten ist. Wenn Sie Größenklassen verwenden, warum sollten Sie Ihre XIB-Dateien mit dem Suffix '~ (iphone | ipad) .xib' ausrichten? – Camsoft
Richtig - wir wollten unsere XIB-Dateien auf bestimmte Gerätetypen ausrichten. Vor der Veröffentlichung von Xcode 6.3 verursachte das Aktivieren von Größenklassen in diesen Dateien keine Probleme. –
Ich vermute, es war vielleicht ein Bug oder Designfehler in den vorherigen Versionen. – Camsoft