Начало работы с мониторингом производительности для платформ Apple

Прежде чем начать

Если вы еще этого не сделали, добавьте Firebase в свой проект Apple .

Шаг 1 : Добавьте Performance Monitoring в свое приложение

После добавления Performance Monitoring SDK Firebase автоматически начинает собирать данные для рендеринга экрана вашего приложения, данные, связанные с жизненным циклом вашего приложения (например, время запуска приложения ), и данные для сетевых запросов HTTP/S .

Используйте Swift Package Manager для установки и управления зависимостями Firebase.

  1. В Xcode откройте проект приложения и перейдите в Файл > Добавить пакеты .
  2. При появлении запроса добавьте репозиторий Firebase Apple Platforms SDK:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. Выберите библиотеку Performance Monitoring .
  5. Добавьте флаг -ObjC в раздел «Другие флаги компоновщика» настроек сборки вашей целевой системы.
  6. После завершения Xcode автоматически начнет разрешать и загружать ваши зависимости в фоновом режиме.

Далее настраиваем модуль Firebase:

  1. Импортируйте модуль 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;
    // ...
          
  2. Настройте общий экземпляр 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];
  3. Если вы используете 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()
          }
        }
      }
    }
          
  4. Перекомпилируйте ваше приложение.

Шаг 2 : Генерация событий производительности для первоначального отображения данных

Firebase начинает обрабатывать события после успешного добавления SDK в приложение. Если вы всё ещё ведёте локальную разработку, взаимодействуйте со своим приложением, чтобы сгенерировать события для первоначального сбора и обработки данных.

  1. Продолжайте разрабатывать свое приложение, используя симулятор или тестовое устройство.

  2. Создавайте события, переключая приложение между фоновым и передним режимами несколько раз, взаимодействуя с приложением путем навигации по экранам и/или запуская сетевые запросы.

  3. Перейдите на панель мониторинга производительности консоли Firebase . Первые данные должны появиться в течение нескольких минут.

    Если вы не видите отображения исходных данных, ознакомьтесь с советами по устранению неполадок .

Шаг 3 : (Необязательно) Просмотр сообщений журнала для событий производительности

  1. Включите ведение журнала отладки следующим образом:

    1. В Xcode (минимум v16.2) выберите Продукт > Схема > Редактировать схему .
    2. Выберите пункт Выполнить в левом меню, затем выберите вкладку Аргументы .
    3. В разделе «Аргументы, передаваемые при запуске» добавьте -FIRDebugEnabled .
  2. Проверьте сообщения журнала на наличие сообщений об ошибках.

  3. Performance Monitoring помечает свои сообщения журнала тегом Firebase/Performance чтобы вы могли фильтровать свои сообщения журнала.

  4. Проверьте следующие типы журналов, которые указывают на то, что Performance Monitoring регистрирует события производительности:

    • Logging trace metric: TRACE_NAME , FIREBASE_PERFORMANCE_CONSOLE_URL
    • Logging network request trace: URL
  5. Нажмите на 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, будут иметь более длительное время, чем ожидалось. Эти соединения выполняются вне процесса, и время их выполнения отражает внутрипроцессные события обратного вызова.

Следующие шаги