如何调查 iOS 崩溃并出现错误 NSOSStatusErrorDomain Code=-50 "query missing class name"
Posted
技术标签:
【中文标题】如何调查 iOS 崩溃并出现错误 NSOSStatusErrorDomain Code=-50 "query missing class name"【英文标题】:How to investigate iOS crash with error NSOSStatusErrorDomain Code=-50 "query missing class name" 【发布时间】:2016-01-25 16:13:07 【问题描述】:我们的应用通过 TestFlight 发布,目前有少数用户遇到崩溃问题,而且崩溃问题很难调查。它发生在 ios 9 和 9.1 上,我们已经在几款不同的 iPhone 上看到了它。我们已经测试了所有这些设备和操作系统版本,因此这似乎不是问题。
为了调试问题,我尝试检查设备日志,以下是我们得到的全部信息:
securityd[93] <Error>: securityd_xpc_dictionary_handler Roger[1287] copy_matching Error Domain=NSOSStatusErrorDomain Code=-50 "query missing class name" UserInfo=NSDescription=query missing class name
Roger[1287] <Error>: SecOSStatusWith error:[-50] Error Domain=NSOSStatusErrorDomain Code=-50 "query missing class name" UserInfo=NSDescription=query missing class name
SpringBoard[58] <Warning>: HW kbd: Failed to set (null) as keyboard focus
com.apple.xpc.launchd[1] (UIKitApplication:im.rgr.RogerApp[0x24fe][1287]) <Notice>: Service exited due to signal: Trace/BPT trap: 5
diagnosticd[84] <Error>: unable to find offset 0x99c5ba5c in shared cache for arch 'arm64'
SpringBoard[58] <Warning>: Application 'UIKitApplication:im.rgr.RogerApp[0x24fe]' crashed.
UserEventAgent[26] <Warning>: 2808550521498: id=im.rgr.RogerApp pid=1287, state=0
一旦我尝试通过 Xcode 使用调试或生产(与发布的代码完全相同)运行应用程序,错误就不再发生。所以它似乎只在应用通过 TestFlight 发布时才会发生。
有人知道如何调试这个问题吗?
【问题讨论】:
我也面临同样的崩溃错误,能否请您发布解决方案? 【参考方案1】:以防万一,我在尝试打开使用企业配置文件签名的应用程序时在日志中看到了此错误。我没有看到有关尝试打开不受信任的应用程序的通常警告;我不知道为什么。
解决方法是进入设置 -> 常规 -> 设备管理(或配置文件和设备管理),然后在企业应用部分下,选择组织,然后在下一个屏幕上选择信任配置文件。记录在https://support.apple.com/en-us/HT204460
【讨论】:
【参考方案2】:这个问题原来是由于框架意外被标记为必需而不是可选,这会导致 iOS 8 设备崩溃。 (我们原本以为 iOS 9+ 的设备也会出现这种情况,但结果是 iOS 8.4。)
以下是更正设置的屏幕截图:
【讨论】:
您能提供更多信息吗?关于此错误的信息很少,我希望有更好的理解。根据需要标记框架(副可选)如何导致运行时崩溃(在应用程序运行数小时后)?谢谢! @Blixt 你没说它会导致 iOS9+ 崩溃。为什么现在要停用WatchConnectivity
和其他?
请阅读图片上方的回答文字,回答您的问题。它在 iOS 8 上崩溃的原因是该版本的操作系统不支持所需的框架会使应用程序崩溃。使其成为可选意味着操作系统将仅在应用程序引用框架时尝试加载框架(因此将您对框架的所有使用放入 if #available(iOS 9.0, *)
块中)。以上是关于如何调查 iOS 崩溃并出现错误 NSOSStatusErrorDomain Code=-50 "query missing class name"的主要内容,如果未能解决你的问题,请参考以下文章
iOS 应用程序崩溃并出现与 _NSFastEnumerationMutationHandler 相关的异常
设置 debug = False 会使 Django 应用程序崩溃并出现以下错误,如何解决?