一位用户报告我的应用程序在他的 iPad Pro 上的启动屏幕上卡住,但在所有其他设备上运行 - iPhone 6 plus 和 iPad Mini 都运行 iOS 9.2。我没有收到此版本的崩溃报告,并且还可以看到其他 iPad 设备运行该应用程序正常,因此我怀疑存在一些本地文件损坏问题。正当我向用户写信询问如何卸载重新安装时,我尝试在 iPad Pro 模拟器上运行该应用程序。繁荣。他是对的。在启动屏幕上卡住并引发异常。 (是的,我内心的 Bart Simpson 正在黑板上写下 100x:发布前在所有模拟器上进行测试)。
Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[ setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key view.'
在 Stackoverflow 上的其他地方,此错误为 attributed to a bad outlet 。据我所知,没有问题:
或Viewcontroller having a bad class 。作为候选者,我将其排除在外,因为我认为这不会是单设备故障,而且因为我的应用程序是在 Cordova 中构建的,所以它会移交给 Web View 。
在 main.m(cordova 生成的文件)中抛出异常:
#import <UIKit/UIKit.h>
int main(int argc, char* argv[])
{
@autoreleasepool {
int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate");
return retVal;
}
}
我还读到过有关格式不正确的启动屏幕导致问题的问题,并且由于我为 iPad Pro 添加的启动屏幕图像是自上一版本以来我的代码中的新增内容,因此这是我的第一个怀疑。但我已经检查了像素大小和分辨率以及所有启动屏幕图像 comply to the specs at Apple's developer site.
所以。有什么想法会导致 iPad Pro 在发布后立即卡住吗?该应用程序的第一步是查找写入本地存储的文件,如果找不到则写入一个文件。再说一遍,除非 Pro 处理本地存储的方式有很大不同,否则我认为不可能是这样,因为该过程适用于所有其他 iOS 设备。如果在实际硬件上运行可以帮助任何人诊断,the app's here in the app store ,我很乐意发送下载代码。
最佳答案
这是一个非常简单的问题:不知道怎么回事,但主界面框滚动到了仅适用于 ipad 的 MainViewController.xib。对于 Cordova 应用程序,它应该是空白的,它位于“部署信息”页面的默认 iPhone View 中。当我点击 iPad 按钮时,错误的选择被显示出来。删掉它,重新编译,一切都很好。
关于iOS 应用程序仅在 iPad Pro 上崩溃 : NSUnknownKeyException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34439745/