使用Xcode 6.3(iOS 8.3 SDK)编译时,某些nib文件名在某些情况下最终会有额外的~ipad
或~iphone
。例如,ViewController~ipad.xib
变为ViewController~ipad~ipad.nib
。这导致崩溃,因为应用程序不希望编译的nib文件具有双后缀。
答案 0 :(得分:39)
要解决此问题,请在Interface Builder中的任何受影响的文档中取消选中“使用大小类”。
这似乎是Xcode 6.3(以及iOS 8.3 SDK)中包含的ibtool
版本中的错误。它发生在以下情况:
*~(iphone|ipad).xib
,其大小等级已启用。我能够在命令行上重现问题:
xcrun --sdk iphonesimulator8.3 ibtool --minimum-deployment-target 7.0 --compile ViewController~ipad.nib ViewController~ipad.xib
如果您发现同样的行为,请复制this radar。这似乎已在最新的Xcode 6.4测试版中修复。
答案 1 :(得分:2)
在xib名称中将〜更改为_并在以编程方式加载包时明确指定后缀。
答案 2 :(得分:0)
这在编译XIB文件时似乎是Xcode 6.3的错误。为了解决异常问题,有4个选项:
我在博文中详细介绍了这些选项:http://www.joobik.com/2015/04/fixing-xcode-63-ios-sdk-error-could-not.html
答案 3 :(得分:0)
我有一些以〜命名的文件,我将它们重命名,但它没有帮助,问题是我没有XIB文件,我甚至试图将我的故事板改为大小类。
没有任何帮助,我已经将目标设置为iOS 7,我真的需要支持iOS 7。
我不知道代码中NIB加载的处理方式......
还有一次,问题是AppStore中的App开始在iOS 8.3上崩溃,如果尝试使用运行iOS 8.3的iPad Air在XCode 6.3中构建App,它会立即崩溃:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: ....
感谢您的帮助。