iOS 应用程序仅在 iPad Pro 上崩溃 : NSUnknownKeyException

标签 ios xcode cordova ipad

一位用户报告我的应用程序在他的 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 。据我所知,没有问题: Screen shot of MainViewController.xib and outlets

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 按钮时,错误的选择被显示出来。删掉它,重新编译,一切都很好。 screen shot of deployment info showing ipad main interface choice as mainviewcontroller

关于iOS 应用程序仅在 iPad Pro 上崩溃 : NSUnknownKeyException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34439745/

相关文章:

ios - 使用不同的开发帐户运行具有相同 bundle ID 的 iOS 应用程序

objective-c - Objective-C : Displaying Array Elements

ios - iPhone5和iPhone 6图片后缀?

gwt - 将 GWT 应用程序部署到 Google Play

objective-c - 在用 classFromString 实例化的类中调用方法?

iphone - 无法提供测试账号,如何将需要登录的应用提交到AppStore?

ios - 如何在 iOS 锁定屏幕上添加搜索按钮?

cordova - 在Android中打开后应用程序立即崩溃

cordova - 停止 Phonegap IOS 中的过度滚动/弹跳

ios - 当前电池状态总是在 ios 中返回 "Charging"