Подготовка
Если вы ещё этого не сделали, добавьте Firebase в проект Apple.
Шаг 1. Добавьте Performance Monitoring в приложение
После добавления SDK Performance Monitoring 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.
- Подмена метода после вызова
FirebaseApp.configure()может помешать работе SDK Performance Monitoring. - Известные проблемы с симулятором iOS 8.0–8.2 не позволяют Performance Monitoring регистрировать события производительности. Эти проблемы устранены в симуляторе iOS 8.3 и более поздних версиях.
- Подключения, установленные с помощью
backgroundSessionConfigurationNSURLSession, будут выполняться дольше, чем ожидалось. Эти подключения выполняются вне процесса, а время отражает события обратного вызова в процессе.
Дальнейшие действия
Изучите и запустите пример кода для iOS (Performance Monitoring) на GitHub.
Подробнее о данных, которые автоматически собирает Performance Monitoring:
- Данные, связанные с жизненным циклом приложения, например время запуска.
- Данные для отрисовки экрана в приложении.
- Данные о сетевых запросах HTTP/S, отправленных вашим приложением.
Просматривайте, отслеживайте и фильтруйте данные об эффективности в консоли Firebase.
Добавьте мониторинг определенных задач или рабочих процессов в приложении, настроив трассировку собственного кода.