Подготовка
Если вы ещё этого не сделали, добавьте Firebase в проект для Apple.
Шаг 1. Добавьте в приложение Performance Monitoring
После того как вы добавите Performance Monitoring SDK, Firebase автоматически начнет собирать данные о рендеринге экрана, жизненном цикле приложения (например, времени запуска) и сетевых запросах HTTP/S.
Для установки зависимостей Firebase и управления ими используйте Swift Package Manager.
- Откройте проект приложения в Xcode и перейдите в меню File (Файл) > Add Packages (Добавить пакеты).
- Когда появится запрос, добавьте хранилище Firebase SDK для платформ Apple:
- Выберите библиотеку Performance Monitoring.
- Добавьте флаг
-ObjCв раздел Other Linker Flags (Другие флаги компоновщика) в настройках сборки целевого объекта. - После этого 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 // ...
Swift
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()
Swift
// 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 (версия 26.2 или более поздняя) выберите Product (Продукт) > Scheme (Схема) > Edit scheme (Изменить схему).
- В меню слева нажмите Run (Выполнить) и перейдите на вкладку Arguments (Аргументы).
- В разделе Arguments Passed on Launch (Аргументы, передаваемые при запуске) добавьте
-FIRDebugEnabled.
Проверьте, нет ли в сообщениях журнала ошибок.
Performance Monitoring добавляет к сообщениям в журнале тег
Firebase/Performance, чтобы вы могли их фильтровать.Проверьте, есть ли в журналах следующие типы записей, указывающие на то, что Performance Monitoring регистрирует события производительности:
Logging trace metric: TRACE_NAME, FIREBASE_PERFORMANCE_CONSOLE_URLLogging network request trace: URL
Нажмите на URL, чтобы посмотреть данные в консоли Firebase. Обновление данных на панели управления может занять несколько минут.
Если ваше приложение не регистрирует события производительности, ознакомьтесь с советами по устранению неполадок.
Шаг 4. (Необязательно.) Добавьте специальный мониторинг для определенного кода
Чтобы отслеживать данные об эффективности, связанные с определенным кодом в приложении, можно добавить трассировку пользовательского кода.
С помощью специальной трассировки кода можно измерить, сколько времени требуется приложению для выполнения определенной задачи или набора задач, например загрузки набора изображений или запроса к базе данных. По умолчанию для трассировки специального кода используется показатель продолжительности, но вы можете добавить и другие показатели, например количество попаданий в кеш и предупреждений о нехватке памяти.
В коде вы определяете начало и конец трассировки пользовательского кода (и добавляете любые нужные пользовательские показатели), используя API, предоставленный Performance Monitoring SDK.
Подробнее о том, как добавить в приложение функции мониторинга определенного кода…
Шаг 5. Разверните приложение и проверьте результаты
После того как вы проверите Performance Monitoring с помощью симулятора Xcode и одного или нескольких тестовых устройств, вы можете развернуть обновленную версию приложения для пользователей.
Данные об эффективности можно отслеживать на панели "Эффективность" в консоли Firebase.
Известные проблемы
- Performance Monitoring имеет известные проблемы с совместимостью с GTMSQLite. Мы не рекомендуем использовать Performance Monitoring с приложениями, в которых применяется GTMSQLite.
- Метод swizzling после вызова
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.
Добавьте мониторинг определенных задач или рабочих процессов в приложении, инструментируя трассировки пользовательского кода.
Используйте атрибуты, чтобы фильтровать данные об эффективности.