[Crashlytics] Enable much earlier sending reports
Sending reports is now handled synchronously on the startup path, so that unsent reports can be sent before a startup crash causes further crashes to occur. This is apparently needed to help one particular user catch whatever is causing the app to crash for them. Signed-off-by: Christopher Snowhill <kode54@gmail.com>swiftingly
parent
0931686a78
commit
9cc5ba7c0e
|
@ -146,6 +146,26 @@ void *kAppControllerContext = &kAppControllerContext;
|
|||
[[NSUserDefaults standardUserDefaults] registerDefaults:@{ @"NSApplicationCrashOnExceptions": @(YES) }];
|
||||
[FIRApp configure];
|
||||
|
||||
/* Evil startup synchronous crash log submitter, because apparently, there
|
||||
* are some startup crashes that need diagnosing, and they're not getting
|
||||
* sent, because the asynchronous defaults are not kicking in before the
|
||||
* ensuing startup crash that happens somewhere later in this function. */
|
||||
__block BOOL submitCompleted = NO;
|
||||
ALog(@"Checking for unsent reports...");
|
||||
[[FIRCrashlytics crashlytics] checkForUnsentReportsWithCompletion:^(BOOL hasReports) {
|
||||
if(hasReports) {
|
||||
ALog(@"Unsent reports found, sending...");
|
||||
[[FIRCrashlytics crashlytics] sendUnsentReports];
|
||||
ALog(@"Reports sent, continuing...");
|
||||
} else {
|
||||
ALog(@"No reports found, continuing...");
|
||||
}
|
||||
submitCompleted = YES;
|
||||
}];
|
||||
while(!submitCompleted) {
|
||||
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.01]];
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
// Prevent updates automatically in debug builds
|
||||
[updater setAutomaticallyChecksForUpdates:NO];
|
||||
|
|
Loading…
Reference in New Issue