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

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

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

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

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

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

  1. В Xcode откройте проект приложения и перейдите в меню Файл > Добавить пакеты .
  2. При появлении соответствующего запроса добавьте репозиторий Firebase Apple platform 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 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 . Вы также должны отключить swizzling делегата приложения. Для получения дополнительной информации см. инструкции 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, предоставляемый SDK Performance Monitoring .

Посетите раздел «Добавить мониторинг для определенного кода», чтобы узнать больше об этих функциях и о том, как добавить их в свое приложение.

Шаг 5 : Разверните свое приложение и просмотрите результаты.

После проверки Performance Monitoring с помощью симулятора Xcode и одного или нескольких тестовых устройств вы можете развернуть обновленную версию своего приложения для своих пользователей.

Вы можете отслеживать данные о производительности на панели производительности консоли Firebase .

Известные проблемы

  • Performance Monitoring имеет известные проблемы совместимости с GTMSQLite. Мы рекомендуем не использовать Performance Monitoring с приложениями, которые используют GTMSQLite.
  • Изменение метода после вызова FirebaseApp.configure() может помешать работе SDK Performance Monitoring .
  • Известные проблемы с iOS 8.0-8.2 Simulator не позволяют Performance Monitoring захватывать события производительности. Эти проблемы исправлены в iOS 8.3 Simulator и более поздних версиях.
  • Подключения, установленные с использованием backgroundSessionConfiguration NSURLSession, будут показывать более длительное, чем ожидалось, время подключения. Эти подключения выполняются вне процесса, а тайминги отражают внутрипроцессные события обратного вызова.

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