移动/游戏
在 iOS/Android/React Native…
为 iOS/Android/React Native 应用接入或扩展 bitdrift Capture SDK 插桩,按需添加采集类别并验证集成。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
在 iOS/Android/React 特定
解决思路
- 使用 `$bd-docs` 在每一步从 docs.bitdrift.io 获取实时 API 细节;平台参考文件指示要查什么,`$bd-docs` 负责发现和抓取机制。
- 按工作流执行:检测平台 → 检查 SDK 是否已安装 → 阅读平台参考 → 若为新安装则添加依赖并调用 `Logger.start()` → 添加用户需要的插桩类别。
- 检测平台:若出现 `build.gradle`、`build.gradle.kts`、`.kt`、`.java`、`AndroidManifest.xml`,判定为 Android。
- 检测平台:若出现 `.xcodeproj`、`.xcworkspace`、`Package.swift`、`Podfile`、`.swift`、`.m`/`.h`,判定为 iOS。
- 检测平台:若出现含 `react-native` 的 `package.json`、`metro.config.js`、`App.tsx`/`App.js`,判定为 React Native。
- 若项目包含多个平台文件(例如 monorepo 中同时有 Android 和 React Native),询问用户要插桩哪个目标。
- 判断 SDK 状态:Android 中查找 `build.gradle`/`build.gradle.kts` 里的 `io.bitdrift:capture`,或源码里的 `import io.bitdrift.capture`。
- 判断 SDK 状态:iOS 中查找 `Package.swift` 里的 `capture-ios`、`Podfile` 里的 `BitdriftCapture`,或源码里的 `import Capture`。
- 判断 SDK 状态:React Native 中查找 `package.json` 里的 `@bitdrift/react-native`,或源码里的 `import { init } from '@bitdrift/react-native'`。
- 阅读平台参考文件并继续:Android (Kotlin/Java) 读 `references/android.md`。
- 阅读平台参考文件并继续:iOS (Swift/Objective-C) 读 `references/ios.md`。
- 阅读平台参考文件并继续:React Native 读 `references/react-native.md`。
- 若 SDK 尚未安装,按平台参考的 New installation 部分添加 SDK 依赖并调用 `Logger.start()`。
- SDK 运行后,按需添加用户需要的插桩类别;这些类别是独立增强,包括 log forwarding、network monitoring、screen views、TTI、fields、spans 等。
- 每个插桩类别独立,直接跳到用户需要的那一个;无论刚完成新安装还是已有 SDK 设置,都适用。
- 当被要求验证集成时,检查所有平台清单项,并为每项输出 PASS/FAIL/WARNING 报告,同时为失败项给出具体代码修复。
- 验证检查 1:SDK 依赖存在且最新。
- 验证检查 2:Logger 在应用生命周期早期初始化。
- 验证检查 3:配置 session strategy。
- 验证检查 4:网络监控已启用。
- 验证检查 5:每个屏幕都有屏幕跟踪。
- 验证检查 6:跟踪 TTI。
- 验证检查 7:链接崩溃报告器并带 session URL。
- 验证检查 8:登录后通过 `setEntityID` / `setEntityId` 设置 Entity ID(仅 iOS/Android;启用 `bd entity` 定向)。
- 验证检查 8a:登录后通过 `addField` 设置用户身份字段。
- 验证检查 9:配置 dSYM/ProGuard mapping 上传(如适用)。
适用边界 · 注意事项
- 目标平台不是 iOS、Android 或 React Native。
- 项目未使用 bitdrift,且不打算引入 bitdrift Capture SDK 或接入其 control plane。
- 无法使用 `$bd-docs` 从 docs.bitdrift.io 获取实时 API 细节,或缺少 bitdrift 相关工具/服务/账号。