С помощью нового фреймворка можно анализировать и безопасно отправлять отчеты прямиком на свой бэкенд, не привязываясь к сторонним SDK.
Для этого нужно создать отдельное расширение
CrashReporterExtension. Кстати, его особенность в том, что оно запускается в отдельном изолированном процессе, полностью независимо от нашей крашнутой приложухи.Когда приложение упадёт, система автоматически вызовет наше расширение и передаст ему метод processCrashReport.
В коде это выглядит так:
@main
struct MyCrashExtension: CrashReporterExtension {
func processCrashReport(process: CrashedProcess) {
// Получаем доступ к данным упавшего процесса
let corpsePort = process.corpsePort
let images = process.binaryImages
// 1. Формируем свой краш-репорт
// 2. Сохраняем на диск или шлем на сервер
}
}Через
CrashedProcess можно получить corpsePort и доступ к загруженным бинарникам, на основе чего уже можно сформировать дамп для отладки.Хотя подавляющее большинство юзает Firebase или Sentry, ещё одна альтернатива нам не помешает.
➡️ Список всех новых фреймворков iOS 27.
😃 iOS Dev
