| Выберите платформу: | iOS+ Android Android NDK Flutter Unity |
В этом руководстве рассказывается, как начать работу с Firebase Crashlytics в приложении для платформ Apple (например, в приложении для iOS).
После того как вы настроите SDK Firebase Crashlytics в своем приложении, вы сможете получать подробные отчеты о сбоях в консоли 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, так и в интегрированной среде разработки (например, добавить файл конфигурации Firebase и SDK Crashlytics). Чтобы завершить настройку, вам нужно принудительно вызвать тестовый сбой и отправить первый отчет о сбое в Firebase.
Если вы ещё этого не сделали, добавьте Firebase в проект Apple. Если у вас нет приложения Apple, вы можете скачать пример приложения.
Рекомендуется. Чтобы автоматически получать историю действий пользователя, которая помогает понять, что привело к сбою или некритической ошибке, включите Google Analytics в проекте Firebase.
Если вы создаете новый проект Firebase, включите Google Analytics в процессе его создания.
Если вы используете существующий проект Firebase, в котором не включен сервис Google Analytics, вы можете включить его на странице
Settings (Настройки) > Integrations (Интеграции) в консоли 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 (Новый этап выполнения скрипта).
Убедитесь, что новый этап Run Script является последним этапом сборки проекта. В противном случае 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.
Нажмите Build and then run the current scheme (Собрать и запустить текущую схему), чтобы собрать приложение на тестовом устройстве или в симуляторе.
Дождитесь запуска приложения и нажмите Stop running the scheme or action (Остановить схему или действие), чтобы закрыть первый экземпляр приложения. В нем содержится отладчик, который мешает работе Crashlytics.
Принудительно вызовите тестовый сбой, чтобы отправить первый отчет о сбое в приложении.
Откройте приложение на главном экране тестового устройства или симулятора.
В приложении нажмите кнопку Test Crash, которую вы добавили с помощью кода выше.
После сбоя снова запустите приложение из Xcode, чтобы оно могло отправить отчет о сбое в Firebase.
В консоли Firebase перейдите в раздел DevOps & Engagement (DevOps и взаимодействие) > Crashlytics dashboard (Панель управления) и проверьте, появился ли тестовый отчет о сбое.
Если вы обновили консоль, но по-прежнему не видите тестовый сбой по прошествии пяти минут, включите ведение журнала отладки, чтобы проверить, отправляет ли приложение отчеты о сбоях.
Вот и всё! Crashlytics теперь отслеживает сбои в вашем приложении. Чтобы посмотреть и изучить все отчеты и статистику, перейдите на панель управления Crashlytics.
Дальнейшие действия
Настройте отчеты о сбоях, добавив согласие на отправку отчетов, журналы, ключи и отслеживание некритических ошибок.
Экспортируйте данные в BigQuery или Cloud Logging, чтобы использовать расширенные функции анализа, например запрашивать данные, создавать собственные сводки и настраивать специальные оповещения.