准备工作
将 Firebase 添加到您的 Apple 项目(如果尚未添加)。
第 1 步:将 Performance Monitoring 添加到您的应用
添加 Performance Monitoring SDK 后,Firebase 会自动开始收集应用的屏幕渲染数据、与应用生命周期相关的数据(例如应用启动时间),以及 HTTP/HTTPS 网络请求的数据。
使用 Swift Package Manager 安装和管理 Firebase 依赖项。
- 在 Xcode 中打开您的应用项目,依次点击 File(文件)> Add Packages(添加软件包)。
- 出现提示时,添加 Firebase Apple 平台 SDK 代码库:
- 选择 Performance Monitoring 库。
- 将
-ObjC
标志添加到目标 build 设置的“其他链接器标志”部分。 - 完成之后,Xcode 将会自动开始在后台解析和下载您的依赖项。
https://github.com/firebase/firebase-ios-sdk.git
接下来,配置 Firebase 模块:
- 在
UIApplicationDelegate
中导入FirebaseCore
模块,以及您的应用委托 (app delegate) 使用的所有其他 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; // ...
- 在应用委托的
application(_:didFinishLaunchingWithOptions:)
方法中配置一个FirebaseApp
共享实例: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,则必须创建应用委托并通过
UIApplicationDelegateAdaptor
或NSApplicationDelegateAdaptor
将其附加到App
结构体。您还必须停用应用委托调配。如需了解详情,请参阅 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 步:生成性能事件以显示初始数据
当您成功将 SDK 添加到应用后,Firebase 即会开始处理事件。如果您仍在本地进行开发,请与您的应用交互以生成事件,从而触发初始数据收集和处理。
继续使用模拟器或测试设备开发应用。
生成事件的方法包括:将应用在后台和前台之间切换数次、与应用进行交互(浏览多个屏幕),以及触发网络请求。
前往 Firebase 控制台的“性能”信息中心。您应该会在几分钟内看到初始数据。
如果您没有看到初始数据,请查看问题排查提示。
第 3 步:(可选)查看性能事件的日志消息
按照如下方式启用调试日志记录:
- 在 Xcode(最低版本为 15.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_URL
Logging network request trace: URL
点击网址即可在 Firebase 控制台中查看您的数据。系统可能需要一些时间才能在信息中心内更新数据。
如果您的应用未记录性能事件,请查看问题排查提示。
第 4 步:(可选)为特定代码添加自定义监控
如需监控与应用中特定代码相关联的性能数据,您可以对自定义代码跟踪记录进行插桩处理。
借助自定义代码跟踪记录,您可以衡量应用完成一项或一组任务(例如加载一组图像或查询数据库)所需的时间。自定义代码跟踪记录的默认指标是其时长,但您也可以添加自定义指标,例如缓存命中数和内存警告。
在代码中,您可以使用 Performance Monitoring SDK 提供的 API 指定自定义跟踪记录的开始和结束(以及添加任何所需的自定义指标)。
请访问为特定代码添加监控功能,详细了解这些功能以及如何将其添加到您的应用中。
第 5 步:部署应用并查看结果
使用 Xcode 模拟器和一个或多个测试设备验证 Firebase Performance Monitoring 之后,您可以将应用的更新版本部署给用户。
您可以在 Firebase 控制台的“性能”信息中心监控性能数据。
已知问题
- Performance Monitoring 与 GTMSQLite 之间存在已知的兼容性问题。建议不要将 Performance Monitoring 用于那些使用 GTMSQLite 的应用。
- 在调用
FirebaseApp.configure()
后执行方法调配可能会干扰 Performance Monitoring SDK。 - iOS 8.0-8.2 模拟器的一些已知问题会阻止 Performance Monitoring 捕获性能事件。这些问题已在 iOS 8.3 模拟器及更高版本中修复。
- 使用 NSURLSession 的
backgroundSessionConfiguration
建立的连接会表现出比预期更长的连接时间。这些连接是在进程外执行的,并且其发生的时间点反映的是进程内回调事件。
后续步骤
详细了解 Performance Monitoring 自动收集的数据:
- 与应用生命周期相关的数据,例如应用启动时间
- 应用中的界面渲染数据
- 应用发出的 HTTP/HTTPS 网络请求的数据
在 Firebase 控制台中查看、跟踪和过滤性能数据。
通过对自定义代码跟踪记录进行插桩处理,针对应用的特定任务或工作流添加监控功能。