当崩溃日志包含 _dispatch_call_block_and_release + 24 时会出现什么问题

问题描述

下面我给出了crashlytics的崩溃日志,没有其他可用的信息。在查看日志时,问题每次出现在不同的场景中。无法复制问题。谁能帮我分析一下 Apple tvos 应用程序中的问题。

Crashed: com.apple.main-thread
SIGTRAP 0x0000000....

0
InsightAgentTVOS
(Missing)
1
InsightAgentTVOS
(Missing)
2
InsightAgentTVOS
(Missing)
3
InsightAgentTVOS
(Missing)
4
InsightAgentTVOS
(Missing)
5
InsightAgentTVOS
(Missing)
3
   libdispatch.dylib
  _dispatch_call_block_and_release + 24
  4
  libdispatch.dylib
  _dispatch_client_callout + 16
  5
  libdispatch.dylib
  _dispatch_main_queue_callback_4CF + 872
  6
  CoreFoundation
__CFRUNLOOP_IS_SERVICING_THE_MAIN_disPATCH_QUEUE__ + 12
  7
  CoreFoundation
__CFRunLoopRun + 2480
  8
  CoreFoundation
  CFRunLoopRunSpecific + 572
  9
  GraphicsServices
  GSEventRunModal + 160
  10
  UIKitCore
  -[UIApplication _run] + 1060
  11
  UIKitCore
  UIApplicationMain + 164

解决方法

_dispatch_call_block_and_release 几乎肯定不是问题(尽管它表明底层可能在您使用 GCD 调度的某个块中)。 SIGTRAP 表示问题可能是 Swift runtime error,例如强制解包/强制转换。有关崩溃报告的一般概述,请参阅 Analyzing a Crash Report

仅供参考,“(Missing)”可能表明该代码没有被符号化或错误的编译选项。正确构建后,崩溃报告会向您显示代码中的确切行号。这消除了猜测。


以上,我假设 InsightAgentTVOS 是您的代码。如果不是,正如罗伯·纳皮尔所推测的那样,那么问题无疑出在他们的图书馆中。可能未提供某些必需的参数。 (强制解包某些可选值是此类问题的常见根源。)如果您没有发现问题,我建议您向他们开票,提供 MCVE