Performance Monitoring 使用入门(Apple 平台)

准备工作

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

第 1 步:将 Performance Monitoring 添加到您的应用

添加 Performance Monitoring SDK 后,Firebase 会自动开始收集应用的屏幕渲染数据、与应用生命周期相关的数据(例如应用启动时间),以及 HTTP/HTTPS 网络请求的数据。

使用 Swift Package Manager 安装和管理 Firebase 依赖项。

  1. 在 Xcode 中打开您的应用项目,依次点击 File(文件)> Add Packages(添加软件包)
  2. 出现提示时,添加 Firebase Apple 平台 SDK 代码库:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. 选择 Performance Monitoring 库。
  5. -ObjC 标志添加到目标 build 设置的“其他链接器标志”部分。
  6. 完成之后,Xcode 将会自动开始在后台解析和下载您的依赖项。

接下来,配置 Firebase 模块:

  1. 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;
    // ...
          
  2. 在应用委托的 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];
  3. 如果您使用的是 SwiftUI,则必须创建应用委托并通过 UIApplicationDelegateAdaptorNSApplicationDelegateAdaptor 将其附加到 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()
          }
        }
      }
    }
          
  4. 重新编译您的应用。

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

当您成功将 SDK 添加到应用后,Firebase 即会开始处理事件。如果您仍在本地进行开发,请与您的应用交互以生成事件,从而触发初始数据收集和处理。

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

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

  3. 前往 Firebase 控制台的“性能”信息中心。您应该会在几分钟内看到初始数据。

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

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

  1. 按照如下方式启用调试日志记录:

    1. 在 Xcode(最低版本为 14.1)中,依次选择 Product(产品)> Scheme(方案)> Edit scheme(修改方案)。
    2. 从左侧菜单中选择 Run(运行),然后选择 Arguments(参数)标签页。
    3. Arguments Passed on Launch(启动参数)部分,添加 -FIRDebugEnabled
  2. 检查您的日志消息中是否有错误消息。

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

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

    • Logging trace metric: TRACE_NAME, FIREBASE_PERFORMANCE_CONSOLE_URL
    • Logging network request trace: URL
  5. 点击网址即可在 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 建立的连接会表现出比预期更长的连接时间。这些连接是在进程外执行的,并且其发生的时间点反映的是进程内回调事件。

后续步骤