应用程序在 iOS 9.1 Beta 2 开始崩溃

App began to crash on iOS 9.1 Beta 2

在 iOS 9.1 Beta 2 上安装时应用程序开始崩溃。完全相同的二进制文件(从 hudson link 下载) 表现如下:

我提取了崩溃日志,崩溃发生在对 [[NSBundle mainBundle] loadNibNamed:@"NameOfView" owner:self options:nil]; 的调用中。崩溃本身是 NSUnknownKeyException

*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[< NameOfView: 0x1446a6ea0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key .'

到目前为止,我看到奇怪的键 '.' 哪个 nib 加载机制试图在我的 class 上设置,显然,nib 中不存在这样的键。这看起来更加奇怪,因为 iOS 9.1 beta 2 是唯一具有这种行为的版本。此外,从相同的 git 版本构建带有 XCode 7 的应用程序不会成功导致应用程序崩溃 - 它按预期工作。在 iOS 9.0.1 beta 2 上尝试您的发行版本后,是否有人遇到过此类行为?在向雷达提交错误之前想要获得 SO 社区的一些反馈。感谢你们的帮助,伙计们。

P.S。我想强调的是,该问题仅在该特定二进制文件上重现。从 XCode 7 中的相同来源再次构建它不会产生崩溃。所以请不要建议如何调试此类问题,如何设置异常断点等

编辑 自 9.1 版本以来,它不再可重现。

正如对原始问题的评论中所述,目前还没有解决方案,也没有对错误的回应。

打开雷达link:http://openradar.appspot.com/radar?id=6294934587965440

我会在 9.1 发布后在这里发布更新。

有一些经验方法可以提出解决方案:

  1. 覆盖 KVC setter setValue:forKey: 并禁止空字符串 钥匙。
  2. 始终使用最新的稳定 SDK 进行构建。

但同样,Apple 也没有实际回应。

编辑 自 9.1 版本以来,它不再可重现。