处理崩溃后,ios app正常退出

时间:2014-09-21 17:28:05

标签: ios

我已经为我的iOS应用程序编写了自己的崩溃处理程序 - 我之所以没有使用Flurry或Crashlytics等现有的崩溃处理程序并不重要。

我的问题是我无法调用默认信号处理程序或正常退出应用程序。相反,在应用程序崩溃之后,它会在最后一个屏幕上冻结,当它崩溃而不是退出应用程序时,如果我没有挂钩信号那么就会冻结。

我的崩溃处理程序很简单,工作正常。但是未调用默认处理程序或应用程序未关闭。

struct sigaction newSigAction;
static struct sigaction oldSigAction;
newSigAction.sa_sigaction = iOSSignalHandler;
newSigAction.sa_flags = SA_SIGINFO;
sigemptyset(&newSigAction.sa_mask);
sigaction(SIGQUIT, &newSigAction, &oldSigAction);
... (more signals attached to)

void iOSSignalHandler(int signal, siginfo_t *info, void *context) {
  // handle crash
  // then call default handler
  (*oldSigAction.sa_sigaction)(signal, info, context);
}

我尝试调用exit(0),但是有更好的方法可以优雅地退出应用程序吗?

修改

更准确地说,崩溃报告工具如何使FLurry和Crashlytics处理信号并退出应用程序,因为在我的情况下,尽管我调用它,默认信号处理程序仍然不会启动

0 个答案:

没有答案