当我打开多任务时,iOS应用程序崩溃,0x8badf00d异常

当我打开多任务时,iOS应用程序崩溃,0x8badf00d异常,ios,crash,multitasking,watchdog,Ios,Crash,Multitasking,Watchdog,我的应用程序有问题。我们的一些用户在系统终止应用程序时遇到崩溃,这发生在他们打开多任务时。我检查了来自测试设备的日志文件,有两种类型的日志 appName.ips.beta 堆栈+appName.ips 第一种类型包含足够的信息,我将日志信息符号化并修复了错误 但第二个类型文件不包含“线程0名称:调度队列:com.apple.main-Thread…”信息。所以我不知道如何理解它 我从日志中找到了这个信息 “异常”:“0x8badf00d” 异常代码0x8badf00d表示由于发生看门狗超时,应

我的应用程序有问题。我们的一些用户在系统终止应用程序时遇到崩溃,这发生在他们打开多任务时。我检查了来自测试设备的日志文件,有两种类型的日志

  • appName.ips.beta
  • 堆栈+appName.ips
  • 第一种类型包含足够的信息,我将日志信息符号化并修复了错误

    但第二个类型文件不包含“线程0名称:调度队列:com.apple.main-Thread…”信息。所以我不知道如何理解它

    我从日志中找到了这个信息

    “异常”:“0x8badf00d”

    异常代码0x8badf00d表示由于发生看门狗超时,应用程序已被iOS终止。应用程序启动、终止或响应系统事件花费的时间太长

    如何从此类日志中获取更多信息

    提前谢谢


    据我推测,您已经了解到,当一个进程阻塞主线程太长时间时,看门狗进程会抛出
    0x8badf00d
    (发音为“吃坏食物”)。这通常是由应用程序启动期间的某些阻塞触发的,但它可以发生在您阻塞主线程的任何位置。例如,如果你有一些进展缓慢的事情,在这个过程中锁定了用户界面,用户自然倾向于跳转到主屏幕,以确保他们的手机是正常的,当他们跳回你的应用程序时,如果它仍然阻塞,看门狗可能会咬你

    看。另见。但是,简而言之,通过采用异步模式,始终避免阻塞主线程(例如,使用缓慢的同步任务)。如果没有看到阻塞主线程的代码,我们就无法得到比这更具体的结果


    但是在您的崩溃报告中,请关注主线程0的堆栈跟踪,希望它是符号化的,因为它可能会被某些同步任务阻止,从而导致看门狗进程杀死您的应用程序。

    感谢您的回复,我删除了didFinishLaunchingWithOptions方法中的所有代码,但它仍然崩溃。因此,无法从阻止主线程的日志中获取任何信息?请查看主线程0的堆栈跟踪。当它被阻止时,看门狗进程就会杀死你的应用程序。这种联系也提供了一些建议。但是,
    didfillishlaunchingwithoptions
    并不是唯一可能出现问题的地方。例如,某个视图控制器的
    viewdiload
    ,或其他什么。主线程上的任何东西。你能把那行日志寄给我吗?如果你没有找到问题的根源,我建议你编辑你的问题,将线程0堆栈跟踪包括在内。它可能并不总是包括显著的细节(正如警告我们的那样),但通常会包括。