在我的應用程序中,我想查找從前一個會話中發生崩潰的確切時間,通過Crashlytics
報告。我設立Crashlytics
這樣:在Crashlytics中查找確切的崩潰時間
- (void) setUpCrashlytics
{
[[Fabric sharedSDK] setDebug:YES];
[CrashlyticsKit setDebugMode:YES];
[CrashlyticsKit setDelegate:self];
[Fabric with:@[[Crashlytics class]]];
}
我按一個按鈕模擬的應用程序崩潰,應用後幾分鐘內啓動:
[CrashlyticsKit crash];
我試圖讓最後一次會議時墜毀使用CrashlyticsDelegate
:
#pragma mark - CrashlyticsDelegate Methods
- (void) crashlyticsDidDetectReportForLastExecution:(CLSReport *) report completionHandler:(void (^)(BOOL)) completionHandler
{
BOOL isCrash = report.isCrash; //this is TRUE
NSDate *crashDate = report.crashedOnDate;
NSDate *reportCreation = report.dateCreated;
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
completionHandler(YES);
}];
}
但不幸的是,這兩個日期都顯示不死機時間,但最後一個會話啓動時間。有任何想法嗎?謝謝。
您是否檢查過「isCrash」是真的?有沒有回溯?報告也會生成所謂的「內存不足」錯誤。 「所謂」,因爲我不相信Crashlytics準確地檢測到這100%(他們很難檢測到)。某些類型的背景終端(特別是後臺OoM)從不讓程序運行代碼,所以Crashlytics不能存儲崩潰時間。通過故意強制崩潰來測試這個,看看'crashedOnDate'是否符合你的期望。 –
Crashlytics的Matt在這裏 - 我們不會通過這種機制在iOS上檢測到OOM。因此,在內存不足終止後,此回調將永遠不會被調用。 你是對的,他們很難做到。以下是我們的做法:https://docs.fabric.io/apple/crashlytics/OOMs.html – Matt