Прежде чем начать
Если вы еще этого не сделали, добавьте Firebase в свой проект Apple .
Шаг 1 : Добавьте Performance Monitoring в свое приложение
После добавления Performance Monitoring SDK Firebase автоматически начинает собирать данные для рендеринга экрана вашего приложения, данные, связанные с жизненным циклом вашего приложения (например, время запуска приложения ), и данные для сетевых запросов HTTP/S .
Используйте Swift Package Manager для установки и управления зависимостями Firebase.
- В Xcode откройте проект приложения и перейдите в Файл > Добавить пакеты .
- При появлении запроса добавьте репозиторий Firebase Apple Platforms SDK:
- Выберите библиотеку Performance Monitoring .
- Добавьте флаг
-ObjC
в раздел «Другие флаги компоновщика» настроек сборки вашей целевой системы. - После завершения Xcode автоматически начнет разрешать и загружать ваши зависимости в фоновом режиме.
https://github.com/firebase/firebase-ios-sdk.git
Далее настраиваем модуль Firebase:
- Импортируйте модуль
FirebaseCore
вUIApplicationDelegate
, а также любые другие модули Firebase, используемые вашим делегатом приложения. Например, чтобы использовать Cloud Firestore и Authentication :SwiftUI
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Быстрый
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Objective-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- Настройте общий экземпляр
FirebaseApp
в методеapplication(_:didFinishLaunchingWithOptions:)
делегата вашего приложения:SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()
Быстрый
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
- Если вы используете SwiftUI, необходимо создать делегат приложения и прикрепить его к структуре
App
черезUIApplicationDelegateAdaptor
илиNSApplicationDelegateAdaptor
. Также необходимо отключить подмену делегата приложения. Подробнее см. в инструкциях по SwiftUI .SwiftUI
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
Перекомпилируйте ваше приложение.
Шаг 2 : Генерация событий производительности для первоначального отображения данных
Firebase начинает обрабатывать события после успешного добавления SDK в приложение. Если вы всё ещё ведёте локальную разработку, взаимодействуйте со своим приложением, чтобы сгенерировать события для первоначального сбора и обработки данных.
Продолжайте разрабатывать свое приложение, используя симулятор или тестовое устройство.
Создавайте события, переключая приложение между фоновым и передним режимами несколько раз, взаимодействуя с приложением путем навигации по экранам и/или запуская сетевые запросы.
Перейдите на панель мониторинга производительности консоли Firebase . Первые данные должны появиться в течение нескольких минут.
Если вы не видите отображения исходных данных, ознакомьтесь с советами по устранению неполадок .
Шаг 3 : (Необязательно) Просмотр сообщений журнала для событий производительности
Включите ведение журнала отладки следующим образом:
- В Xcode (минимум v16.2) выберите Продукт > Схема > Редактировать схему .
- Выберите пункт Выполнить в левом меню, затем выберите вкладку Аргументы .
- В разделе «Аргументы, передаваемые при запуске» добавьте
-FIRDebugEnabled
.
Проверьте сообщения журнала на наличие сообщений об ошибках.
Performance Monitoring помечает свои сообщения журнала тегом
Firebase/Performance
чтобы вы могли фильтровать свои сообщения журнала.Проверьте следующие типы журналов, которые указывают на то, что Performance Monitoring регистрирует события производительности:
-
Logging trace metric: TRACE_NAME , FIREBASE_PERFORMANCE_CONSOLE_URL
-
Logging network request trace: URL
-
Нажмите на URL-адрес, чтобы просмотреть данные в консоли Firebase. Обновление данных на панели управления может занять несколько минут.
Если ваше приложение не регистрирует события производительности, ознакомьтесь с советами по устранению неполадок .
Шаг 4 : (Необязательно) Добавьте пользовательский мониторинг для определенного кода
Для мониторинга данных о производительности, связанных с определенным кодом в вашем приложении, вы можете использовать пользовательские трассировки кода .
С помощью пользовательской трассировки кода вы можете измерить, сколько времени требуется вашему приложению для выполнения определенной задачи или набора задач, например, загрузки набора изображений или запроса к базе данных. Метрикой по умолчанию для пользовательской трассировки кода является ее длительность, но вы также можете добавить пользовательские метрики, такие как количество обращений к кэшу и предупреждения о нехватке памяти.
В своем коде вы определяете начало и конец пользовательской трассировки кода (и добавляете любые необходимые пользовательские метрики), используя API, предоставляемый Performance Monitoring SDK.
Посетите раздел Добавить мониторинг для конкретного кода, чтобы узнать больше об этих функциях и о том, как добавить их в свое приложение.
Шаг 5 : Разверните приложение и просмотрите результаты.
После проверки Performance Monitoring с помощью симулятора Xcode и одного или нескольких тестовых устройств вы можете развернуть обновленную версию своего приложения для своих пользователей.
Вы можете отслеживать данные о производительности на панели производительности консоли Firebase .
Известные проблемы
- У Performance Monitoring есть известные проблемы совместимости с GTMSQLite. Мы рекомендуем не использовать Performance Monitoring с приложениями, использующими GTMSQLite.
- Изменение метода после вызова
FirebaseApp.configure()
может помешать работе SDK Performance Monitoring . - Известные проблемы с симулятором iOS 8.0–8.2 мешают Performance Monitoring регистрировать события производительности. Эти проблемы исправлены в симуляторе iOS 8.3 и более поздних версиях.
- Подключения, установленные с использованием
backgroundSessionConfiguration
объекта NSURLSession, будут иметь более длительное время, чем ожидалось. Эти соединения выполняются вне процесса, и время их выполнения отражает внутрипроцессные события обратного вызова.
Следующие шаги
Просмотрите и запустите пример кода iOS Performance Monitoring на GitHub .
Узнайте больше о данных, автоматически собираемых Performance Monitoring :
- Данные, связанные с жизненным циклом вашего приложения, например время запуска приложения
- Данные для рендеринга экрана в вашем приложении
- Данные о сетевых запросах HTTP/S, отправляемых вашим приложением
Просматривайте, отслеживайте и фильтруйте данные о производительности в консоли Firebase .
Добавьте мониторинг определенных задач или рабочих процессов в вашем приложении, используя инструменты для отслеживания пользовательского кода .
Используйте атрибуты для фильтрации данных о производительности .