跳转到主要内容
本文档说明 iOS RUM SDK 支持的操作系统版本、开发平台、UI 框架及第三方库兼容性。

系统要求

iOS RUM SDK 支持以下操作系统版本:
平台支持状态最低版本说明
iOS✅ 完全支持12.0+推荐平台,所有功能完整支持
iPadOS✅ 完全支持12.0+所有功能完整支持
tvOS✅ 完全支持12.0+所有功能完整支持
macOS (Designed for iPad)✅ 支持11.0+iPad 应用运行在 macOS 上
macOS (Catalyst)⚠️ 部分支持10.14+支持构建,运行时某些功能可能受限
macOS⚠️ 部分支持10.14+非官方支持,某些功能可能无法正常工作
visionOS⚠️ 部分支持1.0+非官方支持,某些功能可能无法正常工作
watchOS❌ 不支持-目前不支持 watchOS 平台

开发工具链

Xcode

SDK 使用最新版本的 Xcode 构建,但始终向后兼容 App Store 提交所需的最低支持 Xcode 版本。
推荐版本: Xcode 14.0 及以上

依赖管理工具

工具支持状态推荐程度
Swift Package Manager✅ 完全支持推荐使用 ⭐
CocoaPods🚧 计划中即将支持
Carthage🚧 计划中即将支持

编程语言

语言最低版本支持状态
Swift5.0+✅ 完全支持(推荐)
Objective-C2.0✅ 完全支持

框架兼容性

框架自动追踪手动追踪说明
UIKit支持自动追踪 UIViewController 和用户交互
SwiftUI⚠️需要使用 .trackRUMView().trackRUMTapAction() 修饰符
UIKit 应用可以完全自动追踪,SwiftUI 应用需要添加修饰符。
框架/库自动追踪手动追踪说明
URLSession需要启用 URLSessionInstrumentation
Alamofire可通过自定义拦截器手动追踪
Apollo GraphQL可通过自定义拦截器手动追踪
AFNetworking⚠️已废弃,建议迁移到 URLSession
推荐使用 URLSession,可以实现完全自动的网络请求追踪。
类型支持状态说明
WKWebView✅ 完全支持需要集成 FlashcatWebView 模块
UIWebView❌ 不支持已被 Apple 弃用
UIWebView 已被 Apple 废弃,请使用 WKWebView。

SDK 模块

Flashduty iOS SDK 由以下模块组成:
依赖名称 (SPM/CocoaPods)Import 名称功能说明是否必需
FlashcatCoreDatadogCore核心 SDK,提供基础功能✅ 必需
FlashcatRUMDatadogRUMRUM 数据收集和上报✅ 必需
FlashcatWebViewTrackingDatadogWebViewTrackingWebView 集成支持可选
FlashcatCrashReportingDatadogCrashReporting崩溃报告推荐
根据您的需求选择性集成模块,只有 FlashcatCoreFlashcatRUM 是必需的。

第三方依赖

Flashduty iOS SDK 依赖以下第三方库:
库名称版本用途
PLCrashReporter1.12.0崩溃报告收集

已知限制

  • SwiftUI 视图需要手动添加 .trackRUMView() 修饰符才能被追踪
  • List 内使用 .trackRUMTapAction() 可能会影响默认手势行为
  • 对于 List 元素,建议使用自定义操作 API
SwiftUI 应用建议结合自动追踪和手动追踪,以获得最佳监控效果。
非官方支持平台:
  • macOS 和 visionOS 不是官方支持的平台
  • 某些依赖 UIKit 的功能在这些平台上可能无法正常工作
  • 不保证未来版本的兼容性
  • Catalyst 模式仅支持构建,运行时某些功能可能受限
  • 建议在实际使用前进行充分测试
如果您的应用主要面向 macOS Catalyst,建议先在测试环境中验证所有功能。

最低部署要求

必要条件:
  • 最低操作系统版本:iOS 12.0 / iPadOS 12.0 / tvOS 12.0
  • 最低 Xcode 版本:Xcode 14.0
  • 最低 Swift 版本:Swift 5.0
  • 网络权限:应用需要有网络访问权限以上报数据
  • 存储空间:SDK 需要少量本地存储空间用于缓存离线数据

性能影响

Flashduty iOS SDK 设计为轻量级,对应用性能的影响极小:
指标影响
CPU 占用< 1%
内存占用< 10 MB
包大小增加约 2-3 MB(视集成的模块而定)
启动时间影响< 100ms
SDK 使用异步批处理机制,不会阻塞主线程,对用户体验影响微乎其微。

版本更新策略

SDK 遵循语义化版本控制(Semantic Versioning):
更新类型版本格式兼容性说明
主版本v3.0.0可能不兼容可能包含破坏性更改,需要代码调整
次版本v3.1.0向后兼容新增功能,保持向后兼容
补丁版本v3.1.1完全兼容Bug 修复,完全向后兼容
建议定期更新 SDK 到最新稳定版本以获得最佳性能和安全性。

相关文档