> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flashduty.com/llms.txt
> Use this file to discover all available pages before exploring further.

# iOS SDK 兼容性

> 了解 iOS RUM SDK 支持的平台版本、开发工具、UI 框架和网络库兼容性

<Info>
  本文档说明 iOS RUM SDK 支持的操作系统版本、开发平台、UI 框架及第三方库兼容性。
</Info>

## 系统要求

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

<Note>
  SDK 使用最新版本的 Xcode 构建，但始终向后兼容 App Store 提交所需的最低支持 Xcode 版本。
</Note>

**推荐版本：** Xcode 14.0 及以上

### 依赖管理工具

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

### 编程语言

| 语言 | 最低版本 | 支持状态 |
| - | - | - |
| **Swift** | 5.0+ | ✅ 完全支持（推荐） |
| **Objective-C** | 2.0 | ✅ 完全支持 |

## 框架兼容性

<AccordionGroup>
  <Accordion title="UI 框架">
    | 框架 | 自动追踪 | 手动追踪 | 说明 |
    | - | - | - | - |
    | **UIKit** | ✅ | ✅ | 支持自动追踪 UIViewController 和用户交互 |
    | **SwiftUI** | ⚠️ | ✅ | 需要使用 `.trackRUMView()` 和 `.trackRUMTapAction()` 修饰符 |

    <Tip>
      UIKit 应用可以完全自动追踪，SwiftUI 应用需要添加修饰符。
    </Tip>
  </Accordion>

  <Accordion title="网络框架">
    | 框架/库 | 自动追踪 | 手动追踪 | 说明 |
    | - | - | - | - |
    | **URLSession** | ✅ | ✅ | 需要启用 `URLSessionInstrumentation` |
    | **Alamofire** | ❌ | ✅ | 可通过自定义拦截器手动追踪 |
    | **Apollo GraphQL** | ❌ | ✅ | 可通过自定义拦截器手动追踪 |
    | **AFNetworking** | ❌ | ⚠️ | 已废弃，建议迁移到 URLSession |

    <Note>
      推荐使用 URLSession，可以实现完全自动的网络请求追踪。
    </Note>
  </Accordion>

  <Accordion title="WebView 支持">
    | 类型 | 支持状态 | 说明 |
    | - | - | - |
    | **WKWebView** | ✅ 完全支持 | 需要集成 `FlashcatWebView` 模块 |
    | **UIWebView** | ❌ 不支持 | 已被 Apple 弃用 |

    <Warning>
      UIWebView 已被 Apple 废弃，请使用 WKWebView。
    </Warning>
  </Accordion>
</AccordionGroup>

## SDK 模块

Flashduty iOS SDK 由以下模块组成：

| 依赖名称 (SPM/CocoaPods) | Import 名称 | 功能说明 | 是否必需 |
| - | - | - | - |
| **FlashcatCore** | `DatadogCore` | 核心 SDK，提供基础功能 | ✅ 必需 |
| **FlashcatRUM** | `DatadogRUM` | RUM 数据收集和上报 | ✅ 必需 |
| **FlashcatWebViewTracking** | `DatadogWebViewTracking` | WebView 集成支持 | 可选 |
| **FlashcatCrashReporting** | `DatadogCrashReporting` | 崩溃报告 | 推荐 |

<Tip>
  根据您的需求选择性集成模块，只有 `FlashcatCore` 和 `FlashcatRUM` 是必需的。
</Tip>

## 第三方依赖

<Note>
  Flashduty iOS SDK 依赖以下第三方库：
</Note>

| 库名称 | 版本 | 用途 |
| - | - | - |
| PLCrashReporter | 1.12.0 | 崩溃报告收集 |

## 已知限制

<AccordionGroup>
  <Accordion title="SwiftUI 限制">
    * SwiftUI 视图需要手动添加 `.trackRUMView()` 修饰符才能被追踪
    * 在 `List` 内使用 `.trackRUMTapAction()` 可能会影响默认手势行为
    * 对于 `List` 元素，建议使用自定义操作 API

    <Tip>
      SwiftUI 应用建议结合自动追踪和手动追踪，以获得最佳监控效果。
    </Tip>
  </Accordion>

  <Accordion title="macOS 和 visionOS 限制">
    <Warning>
      **非官方支持平台：**

      * macOS 和 visionOS 不是官方支持的平台
      * 某些依赖 UIKit 的功能在这些平台上可能无法正常工作
      * 不保证未来版本的兼容性
    </Warning>
  </Accordion>

  <Accordion title="Catalyst 限制">
    * Catalyst 模式仅支持构建，运行时某些功能可能受限
    * 建议在实际使用前进行充分测试

    <Note>
      如果您的应用主要面向 macOS Catalyst，建议先在测试环境中验证所有功能。
    </Note>
  </Accordion>
</AccordionGroup>

## 最低部署要求

<Check>
  **必要条件：**

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

## 性能影响

Flashduty iOS SDK 设计为轻量级，对应用性能的影响极小：

| 指标 | 影响 |
| - | - |
| **CPU 占用** | \< 1% |
| **内存占用** | \< 10 MB |
| **包大小增加** | 约 2-3 MB（视集成的模块而定） |
| **启动时间影响** | \< 100ms |

<Tip>
  SDK 使用异步批处理机制，不会阻塞主线程，对用户体验影响微乎其微。
</Tip>

## 版本更新策略

SDK 遵循语义化版本控制（Semantic Versioning）：

| 更新类型 | 版本格式 | 兼容性 | 说明 |
| - | - | - | - |
| **主版本** | v3.0.0 | 可能不兼容 | 可能包含破坏性更改，需要代码调整 |
| **次版本** | v3.1.0 | 向后兼容 | 新增功能，保持向后兼容 |
| **补丁版本** | v3.1.1 | 完全兼容 | Bug 修复，完全向后兼容 |

<Tip>
  建议定期更新 SDK 到最新稳定版本以获得最佳性能和安全性。
</Tip>

## 相关文档

<CardGroup cols={3}>
  <Card title="SDK 接入" icon="plug" href="/zh/rum/sdk/ios/sdk-integration">
    了解如何集成 iOS SDK
  </Card>

  <Card title="高级配置" icon="sliders" href="/zh/rum/sdk/ios/advanced-config">
    配置 SDK 的高级功能
  </Card>

  <Card title="数据收集" icon="database" href="/zh/rum/sdk/ios/data-collection">
    了解 SDK 收集的数据类型
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.