Catch up on highlights from Firebase at Google I/O 2023. Learn more

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

Прежде чем вы начнете

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

Шаг 1. Добавьте мониторинг производительности в свое приложение.

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

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

  1. В Xcode при открытом проекте приложения перейдите в File > Add Packages .
  2. При появлении запроса добавьте репозиторий SDK Firebase для платформ Apple:
  3.   https://github.com/firebase/firebase-ios-sdk
  4. Выберите библиотеку мониторинга производительности.
  5. Когда закончите, Xcode автоматически начнет разрешать и загружать ваши зависимости в фоновом режиме.

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

  1. Импортируйте модуль FirebaseCore в свой UIApplicationDelegate , а также любые другие модули Firebase, которые использует ваш делегат приложения. Например, чтобы использовать Cloud Firestore и аутентификацию:

    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 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 . Вы также должны отключить 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 (минимум v14.1) выберите Product > Scheme > Edit Scheme .
    2. Выберите «Выполнить» в меню слева, затем перейдите на вкладку «Аргументы» .
    3. В разделе «Аргументы, передаваемые при запуске» добавьте -FIRDebugEnabled .
  2. Проверьте сообщения журнала на наличие сообщений об ошибках.

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

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

    • Logging trace metric: TRACE_NAME , FIREBASE_PERFORMANCE_CONSOLE_URL
    • Logging network request trace: URL
  5. Нажмите на URL-адрес, чтобы просмотреть свои данные в консоли Firebase. Обновление данных на панели мониторинга может занять некоторое время.

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

Шаг 4. (Необязательно) Добавьте настраиваемый мониторинг для определенного кода.

Чтобы отслеживать данные о производительности, связанные с определенным кодом в вашем приложении, вы можете использовать пользовательские трассировки кода .

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

В своем коде вы определяете начало и конец пользовательской трассировки кода (и добавляете любые желаемые пользовательские метрики) с помощью API, предоставляемого пакетом SDK для мониторинга производительности.

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

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

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

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

Известные вопросы

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

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