Хоккейное приложение вылетало на последней тренировке

Я использую эту функцию, чтобы определить, произошел ли сбой приложения во время последнего сеанса, но всегда возвращает один и тот же результат, независимо от того, как и где я ввел «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()
        }
    }

person Alexey Kuznetsov    schedule 23.08.2016    source источник
comment
Сначала общий момент: authenticateInstallation следует вызывать после startManager. Во-вторых: укажите, как и где в вашем коде происходит сбой приложения. Третье: убедитесь, что приложение завершилось сбоем без присоединения отладчика Xcode к вашему приложению. Четвертое: вы также можете связаться с HockeyApp через службу поддержки, наличие примера проекта может помочь быстрее найти проблему.   -  person Kerni    schedule 23.08.2016
comment
Фиксированная первая точка, результат тот же. Во-вторых: независимо от того, где я разбиваю приложение, например, помещаю fatalError () или принудительно разворачиваю необязательный параметр в функции setupApplication или в viewDidLoad начального контроллера представления. И, конечно же, без подключенного отладчика, просто ищем журналы устройств в организаторе xCode. @Kerni есть идеи?   -  person Alexey Kuznetsov    schedule 24.08.2016


Ответы (1)


Проблема в том, что вы используете дополнительные сторонние SDK, которые включают функцию отчетов о сбоях и инициализируют их после HockeySDK в вашем коде. (Узнал об этом из вашего запроса в службу поддержки, и эта информация никогда не была частью вашего вопроса, описывающего ситуацию)

Вы можете использовать только одну стороннюю библиотеку отчетов о сбоях в своем приложении, последняя инициализированная всегда будет единственной работающей.

person Kerni    schedule 25.08.2016