Прежде чем начать
Если вы еще этого не сделали, добавьте Firebase в свой проект Apple .
Шаг 1 : Добавьте Performance Monitoring в ваше приложение.
После добавления SDK Performance Monitoring Firebase автоматически начинает собирать данные о рендеринге экрана вашего приложения, данные, связанные с жизненным циклом приложения (например, время запуска приложения ), и данные о сетевых запросах HTTP/S .
Используйте Swift Package Manager для установки и управления зависимостями Firebase.
- В Xcode, открыв проект приложения, перейдите в меню File > Add Packages .
- При появлении запроса добавьте репозиторий Firebase Apple Platforms SDK:
- Выберите библиотеку Performance Monitoring .
- Добавьте флаг
-ObjCв раздел «Другие флаги компоновщика» в настройках сборки вашей целевой системы. - После завершения Xcode автоматически начнет разрешение и загрузку ваших зависимостей в фоновом режиме.
https://github.com/firebase/firebase-ios-sdk.git
Далее настройте модуль Firebase:
- Импортируйте модуль
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; // ...
- Настройте общий экземпляр
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];
- Если вы используете 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() } } } }
Перекомпилируйте приложение.
Шаг 2 : Сгенерируйте события производительности для первоначального отображения данных.
Firebase начинает обработку событий после успешного добавления SDK в ваше приложение. Если вы все еще разрабатываете локально, взаимодействуйте с приложением, чтобы генерировать события для первоначального сбора и обработки данных.
Продолжайте разработку своего приложения, используя симулятор или тестовое устройство.
Генерируйте события, несколько раз переключая приложение между фоновым и активным режимами, взаимодействуя с приложением путем навигации по экранам и/или инициируя сетевые запросы.
Перейдите на панель мониторинга «Производительность» в консоли Firebase . В течение нескольких минут вы должны увидеть отображение исходных данных.
Если вы не видите отображение исходных данных, ознакомьтесь с советами по устранению неполадок .
Шаг 3 : (Необязательно) Просмотр сообщений журнала о событиях, связанных с производительностью.
Включите отладочное логирование следующим образом:
- В Xcode (минимум версия 16.2) выберите Product > Scheme > Edit scheme .
- В левом меню выберите пункт «Выполнить» , затем перейдите на вкладку «Аргументы» .
- В разделе «Аргументы, передаваемые при запуске» добавьте
-FIRDebugEnabled.
Проверьте журналы на наличие сообщений об ошибках.
Performance Monitoring помечает свои сообщения в журналах тегом
Firebase/Performance, что позволяет фильтровать эти сообщения.Проверьте наличие следующих типов журналов, указывающих на то, что Performance Monitoring регистрирует события, связанные с производительностью:
-
Logging trace metric: TRACE_NAME , FIREBASE_PERFORMANCE_CONSOLE_URL -
Logging network request trace: URL
-
Нажмите на 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, будут демонстрировать более длительное, чем ожидалось, время соединения. Эти соединения выполняются вне процесса, и время выполнения отражает события обратного вызова внутри процесса.
Следующие шаги
Ознакомьтесь и запустите пример кода Performance Monitoring iOS на GitHub .
Узнайте больше о данных, автоматически собираемых системой Performance Monitoring :
- Данные, относящиеся к жизненному циклу вашего приложения, такие как время запуска приложения.
- Данные для отрисовки экрана в вашем приложении.
- Данные для сетевых запросов HTTP/S, отправляемых вашим приложением.
Просматривайте, отслеживайте и фильтруйте данные о производительности в консоли Firebase .
Добавьте мониторинг для конкретных задач или рабочих процессов в вашем приложении, используя инструментарий для трассировки пользовательского кода .
Используйте атрибуты для фильтрации данных о производительности .