| Выберите платформу: | iOS+ Android Android NDK Flutter Unity |
Из этого руководства вы узнаете, как начать работу с Firebase Crashlytics в приложении для платформы Apple (например, iOS).
После того как вы настроите Firebase Crashlytics SDK в приложении, вы сможете получать подробные отчеты о сбоях в консоли Firebase. С помощью Crashlytics для платформ Apple можно получать отчеты о критических и некритических ошибках.
Запрос к ИИ для получения помощи
Чтобы получить помощь от ИИ, скопируйте запрос ниже в ИИ-агента программирования (например, Antigravity, Claude Code, Codex или Cursor). Вы можете изменить запрос и попросить агента переделать изображение. Подробную информацию об установке можно найти в разделе Навыки агента Firebase.
Help me use Firebase in my app.
1. Make sure that **Firebase agent skills** are installed and updated. For Claude Code, Codex, or Cursor agents, help me install the Firebase plugin. For other agents, run `npx skills add firebase/agent-skills`. Always try to use **Firebase agent skills** for Firebase-related tasks.
2. Help me set up Firebase Crashlytics for my app.
Подготовка
Настройка Crashlytics требует выполнения задач как в консоли Firebase, так и в IDE (например, добавления файла конфигурации Firebase и SDK Crashlytics). Чтобы завершить настройку, вам нужно вызвать тестовый сбой, чтобы отправить первый отчет о сбое в Firebase.
Если вы ещё этого не сделали, добавьте Firebase в проект для Apple. Если у вас нет приложения Apple, вы можете скачать пример приложения.
Рекомендуется. Чтобы автоматически получать журналы действий и понимать, что делал пользователь до сбоя или некритического события, включите Google Analytics в проекте Firebase.
Если вы создаете новый проект Firebase, включите Google Analytics в процессе его создания.
Если вы используете имеющийся проект Firebase, в котором не включена Google Analytics, откройте
Настройки > Интеграции на консоли Firebase и включите ее.
Обратите внимание, что журналы цепочки навигации доступны для всех платформ Apple, поддерживаемых Crashlytics, кроме watchOS.
Шаг 1. Добавьте в приложение SDK Crashlytics
Для установки зависимостей Firebase и управления ими используйте Swift Package Manager.
- Откройте проект приложения в Xcode и перейдите в меню File (Файл) > Add Packages (Добавить пакеты).
- Когда появится запрос, добавьте хранилище Firebase SDK для платформ Apple:
- Выберите библиотеку Crashlytics.
- Чтобы использовать журналы цепочки навигации, добавьте в приложение Firebase SDK для Google Analytics. Убедитесь, что в проекте Firebase включена Google Аналитика.
- Добавьте флаг
-ObjCв раздел Other Linker Flags (Другие флаги компоновщика) в настройках сборки целевого объекта. - Только для macOS. В файле
Info.plistдобавьте ключNSApplicationCrashOnExceptionsи задайте для него значениеYES. - После этого Xcode автоматически начнет распознавать и скачивать зависимости в фоновом режиме.
https://github.com/firebase/firebase-ios-sdk.git
Затем настройте модуль Firebase:
Импортируйте модуль Firebase в структуру
Appили классUIApplicationDelegate:Swift
import Firebase
Objective-C
@import Firebase;
Настройте общий экземпляр
FirebaseApp(обычно в методеapplication(_:didFinishLaunchingWithOptions:)делегата приложения):Swift
// Use the Firebase library to configure APIs. FirebaseApp.configure()
Objective-C
// Use the Firebase library to configure APIs. [FIRApp configure];
Шаг 2. Настройте Xcode для автоматической загрузки файлов dSYM
Чтобы создавать понятные отчеты о сбоях, Crashlytics нужны файлы символов отладки (dSYM) вашего проекта. Ниже описано, как настроить Xcode, чтобы он автоматически создавал, обрабатывал и загружал файлы dSYM при каждой сборке приложения.
Откройте рабочую область Xcode проекта и выберите файл проекта в навигаторе слева.
В списке TARGETS (Цели) выберите основную цель сборки.
Нажмите на вкладку Build Settings (Настройки сборки) и выполните следующие действия, чтобы Xcode создавал файлы dSYM для ваших сборок.
Нажмите Все и найдите
debug information format.Для всех типов сборки задайте для параметра Debug Information Format (Формат отладочной информации) значение
DWARF with dSYM File.
Нажмите на вкладку Build Phases (Этапы сборки) и выполните следующие действия, чтобы Xcode мог обрабатывать файлы dSYM и загружать их.
Нажмите > New Run Script Phase (Новый этап выполнения скрипта).
Убедитесь, что новый этап Выполнить скрипт является последним этапом сборки проекта. В противном случае Crashlytics не сможет правильно обработать файлы dSYM.
Разверните новый раздел Выполнить скрипт.
В поле скрипта (под ярлыком Shell) добавьте следующий скрипт.
Этот скрипт обрабатывает файлы dSYM вашего проекта и загружает их в Crashlytics.
"${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"В разделе Input Files (Входные файлы) добавьте пути к следующим файлам:
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist$(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
Если в настройках сборки проекта у вас есть$(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)
ENABLE_USER_SCRIPT_SANDBOXING=YESиENABLE_DEBUG_DYLIB=YES, добавьте следующее:${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}.debug.dylib
Подробную информацию о файлах dSYM и Crashlytics (в том числе о том, как загружать файлы dSYM вручную) можно найти в статье Как получать расшифрованные отчеты о сбоях.
Шаг 3. Завершите настройку, вызвав сбой приложения
Чтобы завершить настройку Crashlytics и посмотреть первые данные на панели управления Crashlytics в консоли Firebase, необходимо принудительно вызвать тестовый сбой.
Добавьте в приложение код, который можно использовать для принудительного создания тестового сбоя.
Вы можете добавить в приложение кнопку, при нажатии на которую будет происходить сбой, используя следующий код: Кнопка называется "Проверить сбой".
SwiftUI
Button("Crash") { fatalError("Crash was triggered") }
UIKit
Swift
import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. let button = UIButton(type: .roundedRect) button.frame = CGRect(x: 20, y: 50, width: 100, height: 30) button.setTitle("Test Crash", for: []) button.addTarget(self, action: #selector(self.crashButtonTapped(_:)), for: .touchUpInside) view.addSubview(button) } @IBAction func crashButtonTapped(_ sender: AnyObject) { let numbers = [0] let _ = numbers[1] } }
Objective-C
#import "ViewController.h" @implementation ViewController ‐ (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. UIButton* button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; button.frame = CGRectMake(20, 50, 100, 30); [button setTitle:@"Test Crash" forState:UIControlStateNormal]; [button addTarget:self action:@selector(crashButtonTapped:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:button]; } ‐ (IBAction)crashButtonTapped:(id)sender { @[][1]; } @end
Создайте сборку и запустите приложение в Xcode, отключив отладчик Xcode.
Нажмите Сборка и запуск текущей схемы, чтобы собрать приложение на тестовом устройстве или в симуляторе.
Дождитесь запуска приложения и нажмите Остановить выполнение схемы или действия, чтобы закрыть исходный экземпляр приложения. В этом экземпляре был отладчик, который мешает работе Crashlytics.
Чтобы принудительно вызвать сбой и отправить первый отчет о нем, выполните следующие действия:
Откройте приложение на главном экране тестового устройства или симулятора.
В приложении нажмите кнопку "Test Crash" (Тестовый сбой), которую вы добавили с помощью кода выше.
После сбоя приложения запустите его снова из Xcode, чтобы оно могло отправить отчет о сбое в Firebase.
В консоли Firebase перейдите на панель DevOps & Engagement > Crashlytics, чтобы проверить отчет о сбое при тестировании.
Если вы обновили консоль, но тестовое падение не появилось в течение пяти минут, включите ведение журнала отладки, чтобы проверить, отправляет ли ваше приложение отчеты о падениях.
Вот и все! Crashlytics теперь отслеживает сбои в вашем приложении. Чтобы посмотреть все отчеты и статистику, перейдите на Crashlytics панель управления.
Дальнейшие действия
Настройте отчеты о сбоях, добавив отчеты с запросом согласия, журналы, ключи и отслеживание некритических ошибок.
Экспортируйте данные в BigQuery или Cloud Logging, чтобы использовать расширенные функции анализа, например отправлять запросы к данным, создавать собственные сводки и настраивать специальные оповещения.