我使用此功能检测应用程序是否在上次会话中崩溃,但总是返回相同的结果,无论我放置的方式和位置" fatalError"或任何其他错误。我做错了什么?
private func didCrashInLastSessionOnStartup() -> Bool {
//returns false
NSLog("\(BITHockeyManager.sharedHockeyManager().crashManager.didCrashInLastSession)")
//returns -1
NSLog("\(BITHockeyManager.sharedHockeyManager().crashManager.timeIntervalCrashInLastSessionOccurred)")
return (BITHockeyManager.sharedHockeyManager().crashManager.didCrashInLastSession) &&
(BITHockeyManager.sharedHockeyManager().crashManager.timeIntervalCrashInLastSessionOccurred < 5)
}
这是我的didFinishLaunchingWithOptions:
BITHockeyManager.sharedHockeyManager().configureWithIdentifier("<id>", delegate: self)
BITHockeyManager.sharedHockeyManager().crashManager.crashManagerStatus = .AutoSend;
BITHockeyManager.sharedHockeyManager().debugLogEnabled = true
BITHockeyManager.sharedHockeyManager().startManager()
BITHockeyManager.sharedHockeyManager().authenticator.authenticateInstallation();
if self.didCrashInLastSessionOnStartup() {
NSLog("Crashed on last session")
} else {
self.setupApplication()
}
我的代表职能:
func crashManagerWillCancelSendingCrashReport(crashManager: BITCrashManager!) {
if self.didCrashInLastSessionOnStartup() {
self.setupApplication()
}
}
func crashManager(crashManager: BITCrashManager!, didFailWithError error: NSError!) {
if self.didCrashInLastSessionOnStartup() {
self.setupApplication()
}
}
func crashManagerDidFinishSendingCrashReport(crashManager: BITCrashManager!) {
if self.didCrashInLastSessionOnStartup() {
self.setupApplication()
}
}
答案 0 :(得分:1)
问题是您正在使用其他第三方SDK,其中包含崩溃报告功能,并在代码中的HockeySDK之后初始化这些功能。 (通过您的支持请求发现,并且该信息从未成为描述情况的问题的一部分)
您只能在应用中使用一个第三方崩溃报告库,您初始化的最后一个将始终是唯一有效的。