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

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

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

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

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

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

  1. В Xcode, открыв проект приложения, перейдите в меню File > Add Packages .
  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 (минимум версия 16.2) выберите Product > Scheme > Edit scheme .
    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, будут демонстрировать более длительное, чем ожидалось, время соединения. Эти соединения выполняются вне процесса, и время выполнения отражает события обратного вызова внутри процесса.

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