91 lines
3.4 KiB
Markdown
91 lines
3.4 KiB
Markdown
# 外部集成
|
||
|
||
**分析日期:** 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*
|