Detect app crashed during load / last time it was run?

前端 未结 2 1858
我寻月下人不归
我寻月下人不归 2020-12-07 22:57

I would like for my app to reset to standard settings if it crashed during startup. Preferably also if it crashed last time it was run.

EDIT: Critte

2条回答
  •  忘掉有多难
    2020-12-07 23:36

    Make 2 functions in your AppDelegate.m file:

    void HandleException(NSException *exception) {
        NSLog(@"App crashing with exception: %@", exception);
        //Save somewhere that your app has crashed.
    }
    
    void HandleSignal(int signal) {
        NSLog(@"We received a signal: %d", signal);
        //Save somewhere that your app has crashed.
    }
    

    Then in your -(BOOL)application:didFinishLaunchingWithOptions before anything else put:

    NSSetUncaughtExceptionHandler(&HandleException);
    
    struct sigaction signalAction;
    memset(&signalAction, 0, sizeof(signalAction));
    signalAction.sa_handler = &HandleSignal;
    
    sigaction(SIGABRT, &signalAction, NULL);
    sigaction(SIGILL, &signalAction, NULL);
    sigaction(SIGBUS, &signalAction, NULL);
    

提交回复
热议问题