Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

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

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

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

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

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

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

Используйте Swift Package Manager для установки и управления зависимостями 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 и аутентификацию:

    Быстрый

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Цель-C

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. Настройте общий экземпляр FirebaseApp в методе application(_:didFinishLaunchingWithOptions:) вашего делегата приложения:

    Быстрый

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Цель-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  1. Перекомпилируйте ваше приложение.

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

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

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

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

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

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

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

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

    1. В Xcode (минимум v13.3.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, будут иметь более длительное время соединения, чем ожидалось. Эти соединения выполняются вне процесса, и тайминги отражают внутрипроцессные события обратного вызова.

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