Решите, отправлять ли отчет Crashlytics (Apple) на основе флага - PullRequest
0 голосов
/ 18 мая 2018

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

Легко не отправлять в "Ответы";просто оберните вызов функции регистрации в оператор if, который проверяет пользовательские настройки.Но мне трудно отключить отчеты Crashlytics, когда приложение уже запущено.

Я посмотрел их документацию, и они отмечают, что вы можете заставить ваше приложение делегировать делегат для Crashlytics:

Crashlytics.sharedInstance().delegate = self
Fabric.with([Crashlytics.self])

И затем используйте метод делегата, чтобы сделать что-то перед отправкой отчета:

func crashlyticsDidDetectReport(forLastExecution report: CLSReport, completionHandler: @escaping (Bool) -> Void)
{
    // You should take some set of actions here based on knowing that a crash happened, but then make sure to call the completion handler
    // If you don't call the completion handler, the SDK will not submit the crash report.
    if reportsAllowed {
        completionHandler(true)
    }
}

Затем я вызвал сбой, и при следующем запуске приложения метод не вызывается (я установил точку останова).внутри него).

Примечание: Я видел этот ответ ( iOS Crashlytics - Блокировать отправку отчетов о сбоях на сервер ), но для этого необходимо, чтобы люди перезапустилиприложение для участия / выхода.

...