Прежде чем начать
Если вы еще этого не сделали, добавьте Firebase в свой проект Apple .
Шаг 1. Добавьте Performance Monitoring в свое приложение.
После того как вы добавили SDK Performance Monitoring , Firebase автоматически начинает собирать данные для рендеринга экрана вашего приложения, данные, связанные с жизненным циклом вашего приложения (например, время запуска приложения ), а также данные для сетевых запросов HTTP/S .
Используйте Swift Package Manager для установки зависимостей Firebase и управления ими.
- В Xcode, открыв проект приложения, выберите «Файл» > «Добавить пакеты» .
- При появлении запроса добавьте репозиторий Firebase SDK для платформ Apple:
- Выберите библиотеку 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 // ...
Цель-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()
Цель-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 (минимум v15.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, предоставляемого пакетом SDK Performance Monitoring .
Посетите раздел «Добавить мониторинг для конкретного кода», чтобы узнать больше об этих функциях и о том, как добавить их в свое приложение.
Шаг 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 .
Добавьте мониторинг конкретных задач или рабочих процессов в свое приложение, используя специальные трассировки кода .
Используйте атрибуты для фильтрации данных о производительности .