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

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

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

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

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

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

  1. В Xcode, открыв проект приложения, выберите «Файл» > «Добавить пакеты» .
  2. При появлении запроса добавьте репозиторий Firebase SDK для платформ Apple:
  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
    // ...
          

    Цель-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()

    Цель-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 (минимум v15.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 не позволяют Performance Monitoring фиксировать события производительности. Эти проблемы исправлены в симуляторе iOS 8.3 и более поздних версиях.
  • Соединения, установленные с использованием backgroundSessionConfiguration NSURLSession, будут иметь более длительное время, чем ожидалось. Эти соединения выполняются вне процесса, а время отражает внутрипроцессные события обратного вызова.

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