本文档说明 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 版本。
依赖管理工具
| 工具 | 支持状态 | 推荐程度 |
|---|---|---|
| Swift Package Manager | ✅ 完全支持 | 推荐使用 ⭐ |
| CocoaPods | 🚧 计划中 | 即将支持 |
| Carthage | 🚧 计划中 | 即将支持 |
编程语言
| 语言 | 最低版本 | 支持状态 |
|---|---|---|
| Swift | 5.0+ | ✅ 完全支持(推荐) |
| Objective-C | 2.0 | ✅ 完全支持 |
框架兼容性
UI 框架
UI 框架
| 框架 | 自动追踪 | 手动追踪 | 说明 |
|---|---|---|---|
| UIKit | ✅ | ✅ | 支持自动追踪 UIViewController 和用户交互 |
| SwiftUI | ⚠️ | ✅ | 需要使用 .trackRUMView() 和 .trackRUMTapAction() 修饰符 |
网络框架
网络框架
| 框架/库 | 自动追踪 | 手动追踪 | 说明 |
|---|---|---|---|
| URLSession | ✅ | ✅ | 需要启用 URLSessionInstrumentation |
| Alamofire | ❌ | ✅ | 可通过自定义拦截器手动追踪 |
| Apollo GraphQL | ❌ | ✅ | 可通过自定义拦截器手动追踪 |
| AFNetworking | ❌ | ⚠️ | 已废弃,建议迁移到 URLSession |
推荐使用 URLSession,可以实现完全自动的网络请求追踪。
WebView 支持
WebView 支持
| 类型 | 支持状态 | 说明 |
|---|---|---|
| WKWebView | ✅ 完全支持 | 需要集成 FlashcatWebView 模块 |
| UIWebView | ❌ 不支持 | 已被 Apple 弃用 |
SDK 模块
Flashduty iOS SDK 由以下模块组成:| 依赖名称 (SPM/CocoaPods) | Import 名称 | 功能说明 | 是否必需 |
|---|---|---|---|
| FlashcatCore | DatadogCore | 核心 SDK,提供基础功能 | ✅ 必需 |
| FlashcatRUM | DatadogRUM | RUM 数据收集和上报 | ✅ 必需 |
| FlashcatWebViewTracking | DatadogWebViewTracking | WebView 集成支持 | 可选 |
| FlashcatCrashReporting | DatadogCrashReporting | 崩溃报告 | 推荐 |
第三方依赖
Flashduty iOS SDK 依赖以下第三方库:
| 库名称 | 版本 | 用途 |
|---|---|---|
| PLCrashReporter | 1.12.0 | 崩溃报告收集 |
已知限制
SwiftUI 限制
SwiftUI 限制
- SwiftUI 视图需要手动添加
.trackRUMView()修饰符才能被追踪 - 在
List内使用.trackRUMTapAction()可能会影响默认手势行为 - 对于
List元素,建议使用自定义操作 API
macOS 和 visionOS 限制
macOS 和 visionOS 限制
Catalyst 限制
Catalyst 限制
- 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 遵循语义化版本控制(Semantic Versioning):| 更新类型 | 版本格式 | 兼容性 | 说明 |
|---|---|---|---|
| 主版本 | v3.0.0 | 可能不兼容 | 可能包含破坏性更改,需要代码调整 |
| 次版本 | v3.1.0 | 向后兼容 | 新增功能,保持向后兼容 |
| 补丁版本 | v3.1.1 | 完全兼容 | Bug 修复,完全向后兼容 |