Flashduty iOS RUM SDK 支持 iOS 12.0、iPadOS 12.0、tvOS 12.0 及以上版本。通过集成 SDK,您可以实时监控 iOS 应用的性能、错误和用户行为。
关于依赖和包名的说明Flashduty iOS SDK 完全兼容 Datadog 开源协议。在 Swift Package Manager 或 CocoaPods 中添加依赖时使用
FlashcatCore、FlashcatRUM 等名称,但在代码中 import 时使用 DatadogCore、DatadogRUM 等模块名。您可以无缝复用 Datadog 生态的文档、示例和最佳实践,同时享受 Flashduty 平台的服务。接入步骤
1
添加 SDK 依赖
Flashduty iOS SDK 支持 Swift Package Manager 和 CocoaPods 两种安装方式:
- Swift Package Manager
- CocoaPods
- 在 Xcode 中,打开您的项目,选择 File > Add Package Dependencies
-
在搜索栏中输入 Flashduty SDK 的 Git 仓库 URL:
-
选择版本规则:
- 推荐:选择 Up to Next Major Version,并输入当前最新版本号(如
0.3.0) - 这样可以在保持兼容性的同时获取 bug 修复和小版本更新
- 推荐:选择 Up to Next Major Version,并输入当前最新版本号(如
- 点击 Add Package,等待 Xcode 下载依赖
-
在弹出的 Choose Package Products 窗口中,选择需要添加到 Target 的模块:
FlashcatCore- 核心 SDK(必选)FlashcatRUM- RUM 功能模块(必选)FlashcatWebViewTracking- WebView 追踪(可选)FlashcatCrashReporting- 崩溃报告(推荐)
- 确保每个模块都关联到正确的 Target,点击 Add Package 完成添加
2
获取应用凭证
在 Flashduty 控制台的 应用管理 页面:
- 创建或选择一个 iOS 应用
- 获取以下凭证信息:
- Application ID - 应用唯一标识符
- Client Token - 客户端访问令牌
3
初始化 SDK
在您的 TrackingConsent 同意状态:
AppDelegate.swift 的 application(_:didFinishLaunchingWithOptions:) 方法中初始化 SDK:AppDelegate.swift
参数说明:
clientToken- 从控制台获取的客户端令牌(必填)env- 环境名称,如production、staging(必填)trackingConsent- 用户追踪同意状态(详见下方说明)
| 状态 | 行为 |
|---|---|
.granted | 开始收集数据并发送到 Flashduty |
.pending | 开始收集和批处理数据,但不发送,等待后续确认 |
.notGranted | 不收集任何数据 |
4
启用 RUM 功能
配置并启用 RUM 功能。建议在
AppDelegate 中尽早启用:AppDelegate.swift
配置参数说明:
applicationID- 从控制台获取的 RUM 应用 IDuiKitViewsPredicate- UIKit 视图追踪策略uiKitActionsPredicate- UIKit 用户操作追踪策略swiftUIViewsPredicate- SwiftUI 视图追踪策略swiftUIActionsPredicate- SwiftUI 用户操作追踪策略urlSessionTracking- URLSession 网络请求追踪配置
SDK 将自动开始收集以下数据:
- UIKit 和 SwiftUI 视图追踪
- 用户交互事件
- 网络请求监控
5
配置网络追踪(可选)
启用 URLSession 追踪:要监控从
URLSession 实例发送的网络请求,需要启用 URLSessionInstrumentation 并传入您的 delegate 类型:自动追踪的网络信息:
- 请求 URL、方法、状态码
- 请求和响应头信息
- 请求时长和数据大小
- 网络错误信息
只有在视图处于活动状态时发起的网络请求才会被追踪。
视图追踪
Flashduty iOS SDK 支持自动追踪 UIKit 和 SwiftUI 视图。UIKit 视图自动追踪
UIKit 视图会通过
DefaultUIKitRUMViewsPredicate 自动追踪。SDK 会追踪 UIViewController 的生命周期,自动记录视图的显示和隐藏。SwiftUI 视图追踪
对于 SwiftUI 应用,需要在视图中添加.trackRUMView() 修饰符:
自定义视图追踪
如果需要更精细的控制,可以手动追踪视图:用户操作追踪
UIKit 操作自动追踪
UIKit 中的用户操作(如点击按钮、切换开关等)会通过
DefaultUIKitRUMActionsPredicate 自动追踪。SwiftUI 操作追踪
对于 SwiftUI 控件,可以添加.trackRUMTapAction() 修饰符:
自定义操作追踪
手动追踪用户操作:高级配置
追踪错误
Flashduty iOS SDK 会自动捕获应用崩溃和未捕获的异常。您也可以手动记录错误:所有错误信息都会在控制台的 RUM Explorer 中显示,包括错误堆栈、属性和 JSON 详情。
详细的异常上报配置请参阅 iOS 异常上报。
追踪后台事件
您可以追踪应用在后台运行时的事件(例如崩溃和网络请求):追踪用户信息
您可以为当前会话设置用户信息,便于追踪特定用户的行为:离线数据处理
iOS SDK 确保在用户设备离线时的数据可用性:数据持久化机制:
- 网络信号弱或设备电量过低时,事件以批次形式存储在本地
- 网络恢复后自动上传,确保不丢失数据
- 自动清理过旧数据,避免占用过多磁盘空间
即使用户在离线时使用应用,数据也会被保留并在网络恢复后上传,不会丢失任何监控数据。
WebView 集成
如果您的 iOS 应用中包含 WKWebView,可以启用 WebView 追踪来监控 Web 内容的性能和错误。1
添加 WebView 依赖
在 Swift Package Manager 添加包依赖时,同时添加
FlashcatWebViewTracking 模块。2
启用 WebView 追踪
在您的 ViewController 中启用 WebView 追踪:
参数说明:
webView- 需要追踪的 WKWebView 实例hosts- 允许追踪的域名列表,支持通配符(如*.example.com)
WebView 中的 Web 页面现在可以与原生应用的 RUM 数据关联起来。
禁用自动用户数据收集
为了符合隐私法规或组织数据治理政策,您可以禁用自动收集用户数据。1
进入应用管理
创建应用后,进入 应用管理页面并点击您的应用。
2
配置数据收集
点击 用户数据收集 选项,使用开关控制以下设置:
- 客户端 IP 收集
- 地理位置数据收集
验证接入
接入完成后,验证集成是否成功:1
查看控制台日志
在 Xcode 控制台中搜索
Datadog 关键字,查看 SDK 初始化和数据上报日志。2
访问控制台
登录 Flashduty 控制台,进入对应的 RUM 应用,查看是否有数据上报。
3
触发测试事件
在应用中执行以下操作验证数据采集:
- 打开应用的不同页面,验证页面浏览事件
- 执行用户操作(点击、滑动等),验证交互事件
- 触发网络请求,验证资源加载事件
- 手动触发一个错误,验证错误追踪
如果看到数据上报且控制台中有数据显示,说明集成成功!