准备工作
如果您尚未将 Firebase 添加到您的 iOS 项目,请执行以下步骤。
第 1 步:将 Performance Monitoring 添加到您的应用
添加 Performance Monitoring SDK 后,Firebase 会自动开始收集应用的屏幕呈现数据、与应用生命周期相关的数据(例如应用启动时间),以及 HTTP/HTTPS 网络请求的数据。
打开为项目创建的 podfile(或运行
pod init
创建一个 podfile),然后在目标部分中添加下面一行代码:pod 'Firebase/Performance'
在 podfile 目录中,运行以下命令来安装 Performance Monitoring SDK:
pod install
使用 Xcode 打开
.xcworkspace
文件。- 在
UIApplicationDelegate
中导入 Firebase 模块:Swift
import Firebase
Objective-C
@import Firebase;
- 配置一个
FirebaseApp
共享实例(通常在应用的application:didFinishLaunchingWithOptions:
方法中配置):Swift
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
重新编译您的应用。
第 2 步:生成性能事件以显示初始数据
Firebase 可以通过接收来自您的应用的事件信息(如应用交互)来检测该 SDK 是否已成功添加到您的应用。如果您仍在本地进行开发,请与您的应用交互,以生成可供 SDK 检测的事件以及初始数据收集和处理事件。
继续使用模拟器或测试设备开发应用。
生成事件的方法包括:将应用在后台和前台之间切换数次、通过跨屏幕导航与应用进行交互,以及触发网络请求。
转到 Firebase 控制台的“性能”信息中心,查看 Firebase 是否已检测到 SDK。
如果您没有看到“检测到了 SDK”的消息,请查看问题排查提示。
Performance Monitoring 会先处理性能事件数据,然后再将其显示在“性能”信息中心中。 您应该会在看到 SDK 检测消息后的 24 小时内看到您的初始数据。
如果您没有看到初始数据,请查看问题排查提示。
第 3 步:(可选)查看性能事件的日志消息
启用调试日志记录,如下所示:
- 在 Xcode(最低版本为 11.0)中,依次选择 Product > Scheme > Edit scheme。
- 从左侧菜单中选择 Run,然后选择 Arguments 标签页。
- 在 Arguments Passed on Launch 部分,添加
-FIRDebugEnabled
。
检查您的日志中有无任何错误消息。
Performance Monitoring 会使用
Firebase/Performance
标记其日志消息,以便您进行过滤。检查以下类型的日志,这些日志表明 Performance Monitoring 正在记录性能事件:
Logging trace metric: TRACE_NAME
Logging network request trace: URL
如果您的应用未记录性能事件,请查看问题排查提示。
第 4 步:(可选)为特定代码添加自定义监控
如需监控与应用中特定代码相关联的性能数据,您可以对自定义代码跟踪记录进行插桩。
借助自定义代码跟踪记录,您可以衡量应用完成一项特定任务或一组任务(例如加载一组图像或查询数据库)所需的时间。自定义代码跟踪记录的默认指标是其时长,但您也可以添加自定义指标,例如缓存命中数和内存警告。
在代码中,您可以使用 Performance Monitoring SDK 提供的 API 指定自定义代码跟踪记录的开始和结束(以及添加任何所需的自定义指标)。
请访问为特定代码添加监控功能,详细了解这些功能以及如何将其添加到您的应用中。
第 5 步:部署应用,然后查看结果
使用 Xcode 模拟器和一个或多个测试设备验证 Firebase Performance Monitoring 之后,您可以将应用的更新版本部署给用户。
您可以在 Firebase 控制台的“性能”信息中心中监控性能数据。
已知问题
- Performance Monitoring 与 GTMSQLite 之间存在已知的兼容性问题。我们建议不要将 Performance Monitoring 用于使用 GTMSQLite 的应用。
- 在调用
FirebaseApp.configure()
后执行方法调配 (method swizzling) 可能会干扰 Performance Monitoring SDK。 - iOS 8.0-8.2 模拟器的已知问题会阻止 Performance Monitoring 捕获性能事件。这些问题已在 iOS 8.3 模拟器及更高版本中修复。
- 使用 NSURLSession 的
backgroundSessionConfiguration
建立的连接会表现出比预期更长的连接时间。这些连接是在进程外执行的,并且其发生的时间点反映了进程内的回调事件。
后续步骤
详细了解 Performance Monitoring 自动收集的数据:
- 与应用生命周期相关的数据,例如应用启动时间
- 应用中的屏幕呈现的数据
- 应用发出的 HTTP/HTTPS 网络请求的数据
在 Firebase 控制台中查看、跟踪和过滤性能数据。
通过对自定义代码跟踪记录进行插桩,为特定任务或工作流添加监控功能。