| Выберите платформу: | iOS+ Android Android NDK Flutter Unity |
В этом руководстве описано, как начать работу с Firebase Crashlytics в вашем приложении для платформ Apple (например, в приложении для iOS).
После установки SDK Firebase Crashlytics в ваше приложение вы сможете получать подробные отчеты о сбоях в консоли Firebase . С Crashlytics для платформ Apple вы получаете отчеты как о сбоях, так и о некритических ошибках.
Для настройки 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 в ваше приложение.
Используйте Swift Package Manager для установки и управления зависимостями Firebase.
- В Xcode, открыв проект приложения, перейдите в меню File > Add Packages .
- При появлении запроса добавьте репозиторий Firebase Apple Platforms SDK:
- Выберите библиотеку Crashlytics .
- Чтобы использовать функцию "хлебные крошки" (breadcrumb logs) , добавьте в приложение также Firebase SDK для Google Analytics . Убедитесь, что Google Analytics включен в вашем проекте Firebase.
- Добавьте флаг
-ObjCв раздел «Другие флаги компоновщика» в настройках сборки вашей целевой системы. - (Только для macOS) В файле
Info.plistдобавьте ключNSApplicationCrashOnExceptionsи установите для него значениеYES. - После завершения Xcode автоматически начнет разрешение и загрузку ваших зависимостей в фоновом режиме.
https://github.com/firebase/firebase-ios-sdk.git
Далее настройте модуль Firebase:
Импортируйте модуль Firebase в структуру
AppилиUIApplicationDelegate:Быстрый
import Firebase
Objective-C
@import Firebase;
Настройте общий экземпляр
FirebaseApp, как правило, в методеapplication(_:didFinishLaunchingWithOptions:)вашего делегата приложения:Быстрый
// 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, их обработки и загрузки при каждой сборке приложения.
Open your project's Xcode workspace, then select its project file in the left navigator.
From the TARGETS list, select your main build target.
Перейдите на вкладку «Настройки сборки» , затем выполните следующие действия, чтобы Xcode создал файлы dSYM для ваших сборок.
Нажмите «Все» , затем найдите
debug information format.Установите формат отладочной информации на
DWARF with dSYM Fileдля всех типов сборки.
Click the Build Phases tab, then complete the following steps so that Xcode can process your dSYMs and upload the files.
Нажмите > «Новый этап выполнения скрипта» .
Make sure this new Run Script phase is your project's last build phase; otherwise, Crashlytics can't properly process dSYMs.
Разверните новый раздел «Выполнить скрипт» .
In the script field (located under the Shell label), add the following run script.
This script processes your project's dSYM files and uploads the files to Crashlytics .
"${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"В разделе «Входные файлы» укажите пути к следующим файлам:
${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
If you have$(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)
ENABLE_USER_SCRIPT_SANDBOXING=YESandENABLE_DEBUG_DYLIB=YESin your project build settings, then include the following:${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}.debug.dylib
For more detailed information about dSYM files and Crashlytics (including how to manually upload dSYM files), visit Get deobfuscated crash reports .
Шаг 3 : Принудительно вызвать сбой теста для завершения настройки.
Чтобы завершить настройку Crashlytics и увидеть исходные данные на панели Crashlytics в консоли Firebase , необходимо принудительно вызвать сбой теста.
Add code to your app that you can use to force a test crash.
You can use the following code to add a button to your app that, when pressed, causes a crash. The button is labeled "Test Crash".
SwiftUI
Button("Crash") { fatalError("Crash was triggered") }
UIKit
Быстрый
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
Build and run your app in Xcode with the Xcode debugger disconnected.
Click Build and then run the current scheme to build your app on a test device or simulator.
Дождитесь завершения работы приложения, затем нажмите . Остановите выполнение схемы или действия , чтобы закрыть исходный экземпляр приложения. Этот исходный экземпляр включал отладчик, который мешает работе Crashlytics .
Force the test crash in order to send your app's first crash report:
Open your app from the home screen of your test device or simulator.
In your app, press the "Test Crash" button that you added using the code above.
After your app crashes, run it again from Xcode so that your app can send the crash report to Firebase.
В консоли Firebase перейдите в раздел DevOps & Engagement > Панель Crashlytics , чтобы проверить отчет о сбоях в тестах.
Если после обновления консоли сбой теста по-прежнему не наблюдается через пять минут, включите отладочное логирование, чтобы проверить, отправляет ли ваше приложение отчеты о сбоях.
Вот и всё! Crashlytics теперь отслеживает сбои в вашем приложении. Перейдите на панель управления Crashlytics , чтобы просмотреть и проанализировать все ваши отчеты и статистику.
Следующие шаги
Настройте параметры отчетов о сбоях , добавив возможность включения отчетов по желанию пользователя, журналы, ключи и отслеживание некритических ошибок.
Экспортируйте свои данные в BigQuery или Cloud Logging для расширенного анализа и использования таких функций, как запросы к данным, создание пользовательских панелей мониторинга и настройка пользовательских оповещений.