docs: add codebase map

This commit is contained in:
shen
2026-05-21 20:36:12 +08:00
parent faa069ec99
commit 4daa3a6ed4
7 changed files with 764 additions and 0 deletions
+90
View File
@@ -0,0 +1,90 @@
# 外部集成
**分析日期:** 2026-05-21
## API 与外部服务
**网络 / Web 服务:**
- 在 SDK 源码(`Sources/RDReaderView/**`)中未检测到:未发现 `URLSession` 使用,也未发现常见第三方网络 SDK。
**托管服务 SDK(统计/崩溃/广告/支付):**
- 在仓库源码中未检测到:未发现 Firebase、Sentry、Mixpanel/Segment/Amplitude、AppCenter 等。
## 数据存储
**数据库:**
- 未检测到(`Sources/RDReaderView/**` 中未发现 Core Data / SQLite / Realm / GRDB 使用)。
**文件存储(本地文件系统):**
- EPUB 解压使用 `FileManager`,将解压内容存放在 app caches 或临时目录下,并使用“确定性签名”目录名 — `Sources/RDReaderView/EPUBCore/RDEPUBParser+Archive.swift`
**偏好 / 轻量持久化:**
- 使用 `UserDefaults` 保存设置/状态(例如 debug 开关、阅读器状态快照)— `Sources/RDReaderView/EPUBCore/RDEPUBWebViewDebug.swift``Sources/RDReaderView/EPUBUI/RDEPUBReaderPersistence.swift``Sources/RDReaderView/LegacyRDReaderController/RDReaderController.swift`
## 认证与身份
- 不适用(未检测到认证提供方或身份流程)。
## 监控与可观测性
**错误追踪 / 崩溃上报:**
- 未检测到(无 Crashlytics/Sentry 等)。
**日志:**
- 存在用于 EPUB WebView 调试的本地 debug 日志工具 — `Sources/RDReaderView/EPUBCore/RDEPUBWebViewDebug.swift`
## 构建期集成
**CocoaPods**
- SDK 作为 CocoaPod 发布并声明外部依赖 — `RDReaderView.podspec`
- 示例 App 通过本地 `:path => '..'` 引用该 Pod — `ReadViewDemo/Podfile`
- 仓库根 `Podfile` 也声明了 `RDReaderView` 的本地 path 依赖,并设置共享构建参数覆盖 — `Podfile`
**构建设置覆盖:**
-`post_install` 中统一设置 `ENABLE_USER_SCRIPT_SANDBOXING = NO``IPHONEOS_DEPLOYMENT_TARGET = 15.6``Podfile``ReadViewDemo/Podfile`
## 渲染 / 内嵌 Web 内容
**WKWebView 集成:**
- 使用 `WKWebViewConfiguration` 并设置 `websiteDataStore = .nonPersistent()`;注册自定义 URL scheme handler 以服务 EPUB 资源 — `Sources/RDReaderView/EPUBCore/RDEPUBWebView+Configuration.swift`
- 注入 user script,并注册 script message handler 实现 JavaScript bridge — `Sources/RDReaderView/EPUBCore/RDEPUBWebView+Configuration.swift``Sources/RDReaderView/EPUBCore/RDEPUBJavaScriptBridge.swift`
## CI/CD 与部署
**CI 流水线:**
- 未检测到(未发现 `.github/` 或常见 CI 配置文件)。
**部署:**
- 未检测到 App 部署流水线;仓库形态为 iOS SDK + Demo App`RDReaderView.podspec``ReadViewDemo/`)。
## 环境配置
**必须的环境变量:**
- 未检测到(未发现 `.env*` 使用,也未发现 `Sources/RDReaderView/**` 中读取环境变量的代码)。
**密钥存放:**
- 基于当前仓库内容检查结果:不适用。
## Webhooks 与回调
**入站:**
- 未检测到。
**出站:**
- 未检测到。
## Evidence(关键证据)
检查过的关键文件:
- `RDReaderView.podspec`
- `ReadViewDemo/Podfile`
- `ReadViewDemo/Podfile.lock`
- `Podfile`
- `Sources/RDReaderView/EPUBCore/RDEPUBParser+Archive.swift`
- `Sources/RDReaderView/EPUBCore/RDEPUBWebView+Configuration.swift`
- `Sources/RDReaderView/EPUBCore/RDEPUBJavaScriptBridge.swift`
- `Sources/RDReaderView/LegacyRDReaderController/RDReaderController.swift`
---
*外部集成审计:2026-05-21*