Firebase 性能监控使用入门 (iOS)

准备工作

将 Firebase 添加到您的 iOS 项目(如果尚未添加)。

第 1 步:将性能监控添加到您的应用

  1. 打开为项目创建的 podfile(或运行 pod init 创建一个 podfile),然后在目标部分中添加下面一行代码:

    pod 'Firebase/Performance'
  2. 在 podfile 目录中,运行以下命令来安装 Performance Monitoring SDK:

    pod install
  3. 使用 Xcode 打开 .xcworkspace 文件。

  4. UIApplicationDelegate 中导入 Firebase 模块:

    Swift

    import Firebase

    Objective-C

    @import Firebase;
  5. 配置一个 FirebaseApp 共享实例(通常在应用的 application:didFinishLaunchingWithOptions: 方法中配置):

    Swift

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Objective-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  6. 重新编译您的应用。

现在,Firebase 便开始监控自动时长跟踪记录自动 HTTP/HTTPS 网络请求了。

第 2 步:生成性能事件以显示初始数据

Firebase 可以通过接收来自您的应用的事件信息(如应用交互)来检测该 SDK 是否已成功添加到您的应用。如果您仍在本地进行开发,请与您的应用交互,以生成 SDK 检测事件以及初始数据收集和处理事件。

  1. 继续使用模拟器或测试设备开发应用。

  2. 生成事件的方法包括:将应用在后台和前台之间切换数次、通过跨屏幕导航与应用进行交互,以及触发网络请求。

  3. 转到 Firebase 控制台的“性能”部分,查看 Firebase 是否已检测到 SDK。

    如果您没有看到“检测到了 SDK”的消息,请查看问题排查提示

  4. 性能监控会先处理性能事件数据,然后再将其显示在“性能”信息中心中。 您应该会在看到 SDK 检测消息后的 24 小时内看到您的初始数据。

    如果您没有看到初始数据,请查看问题排查提示

第 3 步(可选)查看性能事件的日志消息

  1. 启用调试日志记录,如下所示:

    1. 在 Xcode(最低 v10.3)中,依次选择 Product > Scheme > Edit scheme
    2. 从左侧菜单中选择 Run,然后选择 Arguments 标签页。
    3. Arguments Passed on Launch 部分,添加 -FIRDebugEnabled
  2. 检查您的日志消息中有无任何错误消息。

  3. 性能监控会使用 Firebase/Performance 标记其日志消息,以便您进行过滤。

  4. 检查以下类型的日志,这些日志表明性能监控正在记录性能事件:

    • Recording trace: trace-name
    • Recording network trace: url

如果您的应用未记录性能事件,请查看问题排查提示

第 4 步(可选)为特定代码添加自定义监控

您可以创建自定义跟踪记录来监控与应用中的特定代码相关联的性能数据。

借助自定义跟踪记录,您可以衡量应用完成特定任务或任务集(例如加载一组图片或查询数据库)所需的时间。自定义跟踪记录的默认指标是其时长,但您也可以添加自定义指标,例如缓存命中数和内存警告。

在代码中,您可以使用 Performance Monitoring SDK 提供的 API 指定自定义跟踪记录的开始和结束(以及添加任何所需的自定义指标)。

请访问为特定应用代码添加自定义监控,详细了解这些功能以及如何将其添加到您的应用中。

第 5 步:部署应用,然后查看结果

使用 Xcode 模拟器和一个或多个测试设备验证 Firebase 性能监控之后,您可以将更新版本的应用部署给用户。

您可以在 Firebase 控制台的“性能”信息中心中监控性能数据。

已知问题

  • 性能监控与 GTMSQLite 之间存在已知的兼容性问题。我们建议不要将性能监控用于使用 GTMSQLite 的应用。
  • 在调用 FirebaseApp.configure() 后执行方法调配可能会干扰 Performance Monitoring SDK。
  • iOS 8.0-8.2 模拟器的已知问题会阻止性能监控捕获性能事件。这些问题已在 iOS 8.3 模拟器及更高版本中修复。
  • 使用 NSURLSession 的 backgroundSessionConfiguration 建立的连接会表现出比预期更长的连接时间。这些连接是在进程外执行的,并且其发生的时间点反映了进程内的回调事件。

后续步骤