Я добавил переключатель в свою политику конфиденциальности, чтобы люди могли отказаться от отправки отчетов 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 - Блокировать отправку отчетов о сбоях на сервер ), но для этого необходимо, чтобы люди перезапустилиприложение для участия / выхода.