Xcode 6.3: Could not load NIB in bundle

2019-01-15 12:35发布

When compiled using Xcode 6.3 (iOS 8.3 SDK), some nib filenames end up with an extra ~ipad or ~iphone in certain circumstances. For example, ViewController~ipad.xib becomes ViewController~ipad~ipad.nib. This is causing a crash because the app doesn't expect the compiled nib files to have the double suffix.

4条回答
老娘就宠你
2楼-- · 2019-01-15 12:38

I had some files named with ~ and I renamed them, but it did not help, the thing is that I have no XIB files, I even tried to change my Storyboards to Size Classes.

Nothing is helping, I have build target set to iOS 7 and I really need to support iOS 7.

I do not know what handle NIB loading in code means...

One more time, the problem is that my App in AppStore started to crash on iOS 8.3, and if try to build the App in XCode 6.3 using my iPad Air running iOS 8.3 it crashes right away with this message:

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: ....

Thanks for help.

查看更多
劫难
3楼-- · 2019-01-15 12:49

This appears to be a bug of Xcode 6.3 when compiling XIB files. In order to workaround the exceptions there are 4 Options:

  1. Target your project to iOS 8
  2. Use storyboards instead of XIB files
  3. Disable Size Classes
  4. Handle NIB loading in code

I detailed each of these options in my blog post: http://www.joobik.com/2015/04/fixing-xcode-63-ios-sdk-error-could-not.html

查看更多
对你真心纯属浪费
4楼-- · 2019-01-15 13:00

To fix this, uncheck “Use Size Classes” in any affected documents in Interface Builder.

This appears to be a bug in the version of ibtool included with Xcode 6.3 (and the iOS 8.3 SDK). It's happening in the following circumstances:

  • You have a device-specific input file *~(iphone|ipad).xib with size classes enabled.
  • Your deployment target is anything older than iOS 8.0.

I was able to reproduce the problem on the command line:

xcrun --sdk iphonesimulator8.3 ibtool --minimum-deployment-target 7.0 --compile ViewController~ipad.nib ViewController~ipad.xib

If you're seeing the same behavior, please duplicate this radar. This appears to be fixed in the latest Xcode 6.4 beta.

查看更多
狗以群分
5楼-- · 2019-01-15 13:03

change ~ to _ in the xib name and specify explicitly the suffix while loading the bundle programmatically.

查看更多
登录 后发表回答