HockeyApp或设备日志中不会出现难以重现的崩溃

Zan*_*aes 2 iphone xcode ios hockeyapp

两天前,我的一款iPhone游戏测试版测试人员在游戏玩法的特定点遇到了崩溃.HockeyApp中没有出现崩溃报告(我看过同一版本的其他报告).

昨晚,我也经历了撞车事故.不幸的是我没有连接到调试器.当我回到计算机时,我插入了我的设备,但没有发现新的崩溃日志.请注意,我的设备是在iOS8 Beta上,我尝试使用XCode5和XCode6来查找崩溃日志.

这次崩溃非常难以重现; 在30多个小时的组合游戏中,它只发生了3次.这不是记忆问题; 崩溃发生在游戏玩法的一个非常具体的位置,重新启动应用程序导致另一个非常具体的症状......对我来说只是不够具体调试;)

我已经读过HockeyApp等之前捕获崩溃日志的方式,但我必须承认缺乏专业知识.是什么原因导致日志丢失?HockeyApp以某种方式"消耗"了它,还是根本没有创造它?

更重要的是,我该如何追踪这个问题?

Ker*_*rni 8

这是来自HockeyApp的Andreas.

让我先谈一些一般性评论:

  1. 如果发生崩溃或iOS杀死应用程序(技术上不是崩溃),那么iOS将始终将崩溃报告写入设备,但有一个例外:如果设备被拒绝与Apple同步使用和崩溃数据它只会存储有限数量的报告,而只会在控制台中打印报告.

  2. 第三方框架永远不会"消耗"崩溃,因此iOS将无法生成报告.应用程序中的多个第三方框架可以检测未处理的异常,但只有一个框架可以检测由信号触发的崩溃.

  3. 具有默认设置的HockeyApp SDK无法检测崩溃,例如由堆栈溢出引起的崩溃.这可以通过启用Mach异常来激活,请参阅http://hockeyapp.net/help/sdk/ios/3.5.6/Classes/BITCrashManager.html#//api/name/enableMachExceptionHandler

  4. HockeyApp SDK具有实验支持,可以通过iOS检测应用程序的某些类型.这也需要单独激活,请参阅https://github.com/bitstadium/HockeySDK-iOS/blob/develop/Classes/BITCrashManager.h#L224

没有iOS崩溃报告,就不能说为什么HockeyApp无法报告崩溃.我对iOS没有在设备上显示崩溃报告的假设是,设备上已经有太多崩溃报告并且禁用了同步.

  1. 将设备连接到Xcode
  2. 选择设备,然后再次检查设备上的崩溃报告.
  3. 模拟新的崩溃
  4. 再次检查是否存储在设备上.
  5. 检查控制台日志中是否有内容.
  6. 如果假设正确,则从设备中删除旧的崩溃报告,以便为新报告腾出空间.
  7. 一旦您获得了该崩溃的报告并通过支持与我们联系,我们就可以帮助您进行分析.