4

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

  • 它没有在 iOS 9.0 和 iOS 9.0.1 上崩溃
  • 它在任何一个 iOS 8 上都没有崩溃

我已经提取了崩溃日志,崩溃发生在对[[NSBundle mainBundle] loadNibNamed:@"NameOfView" owner:self options:nil];. 崩溃本身是NSUnknownKeyException

*** 由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[<NameOfView: 0x1446a6ea0> setValue:forUndefinedKey:]: 这个类不符合键的键值编码。”

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

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

编辑 自 9.1 版本以来,它不再具有重现性。

4

1 回答 1

1

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

开放雷达链接:http://openradar.appspot.com/radar?id= 6294934587965440

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

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

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

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

编辑自 9.1 版本以来,它不再具有重现性。

于 2015-10-12T13:40:06.137 回答