当使用Xcode 6.3(iOS 8.3 SDK)编译时,某些nib文件名在某些情况下最终会有额外的〜ipad或〜iphone。例如,ViewController〜ipad.xib成为ViewController〜ipad〜ipad.nib。这会导致崩溃,因为应用程序不希望编译的nib文件具有双重后缀。
解决方法
要解决此问题,请在Interface Builder中的任何受影响的文档中取消选中“使用大小类”。
这似乎是Xcode 6.3(和iOS 8.3 SDK)中包含的ibtool版本的错误。发生在以下情况:
>您有一个特定于设备的输入文件*〜(iphone | ipad).xib启用大小类。
>您的部署目标比iOS 8.0更老。
我能够在命令行上重现问题:
xcrun --sdk iphonesimulator8.3 ibtool --minimum-deployment-target 7.0 --compile ViewController~ipad.nib ViewController~ipad.xib
如果您看到相同的行为,请复制this radar.这似乎是在最新的Xcode 6.4测试版中修复的。