所有显著更改都将记录在此文件中。
格式基于 Keep a Changelog, 本项目遵循 语义化版本。
- 新增
EncryptionStatus枚举(none/unlocked/locked) DBInfo新增encryptionStatus字段,用于区分数据库的加密状态- 支持检测 SQLCipher 加密数据库是否已解锁
- 新增
preparationStatements支持,用于在应用密钥后执行额外的 PRAGMA 配置 - 新增
registerEncrypted(id:keyProvider:preparationSQL:)方法 - 支持配置
PRAGMA cipher_compatibility、PRAGMA kdf_iter等 SQLCipher 参数
- 新增
unregisterEncryption(for:)方法,用于清理单个数据库的密钥提供者 - 新增
unregisterAllEncryption()方法,用于清理所有密钥提供者 - 适用于用户切换账户时清理加密配置
- 新增
ownerDisplayName字段支持用户友好标识 - 支持显示数据库所属用户信息
- 优化
SQLiteInspector对加密数据库的处理逻辑 - 改进数据库列表返回时的加密状态显示
listDatabases即使无法打开加密数据库也返回文件大小- 自动检测加密数据库并在无密钥时拒绝访问
- 修复 SQLCipher 数据库支持的关键问题
- HTTP/HTTPS 请求捕获 (URLProtocol)
- URLSessionTaskMetrics 性能数据
- CocoaLumberjack 日志集成
- os_log 日志捕获
- WebSocket 连接监控
- SQLite 数据库检查
- Mock 规则引擎
- 断点调试框架
- 故障注入框架
- WebSocket 连接到 Debug Hub
- 设备信息上报
- 实时事件推送
DebugProbeSettings运行时配置管理- 支持 Info.plist 配置
- 支持 UserDefaults 持久化
- 配置变更通知机制
- HTTP 自动拦截 (
URLSessionConfigurationSwizzle) - WebSocket 连接级 Swizzle
- WebSocket 消息级 Hook
- 事件持久化队列 (SQLite)
- 断线重连自动恢复
- 批量发送优化
DebugLog分级日志系统- 支持 verbose 开关
PageTimingRecorder页面耗时记录器- 支持 UIKit 自动采集(viewWillAppear → viewDidAppear)
- 支持 SwiftUI UIHostingController 自动采集
- 支持手动 API 精确控制页面生命周期标记
- 排除系统类和 SwiftUI UIHostingController
PerformancePlugin插件- 支持 CPU 使用率监控
- 支持内存使用监控
- 支持帧率 (FPS) 监控
BreakpointEngine网络层集成- 支持请求断点和响应断点
ChaosEngine网络层集成- 支持延迟注入、超时模拟、连接重置
- 支持错误码注入、数据损坏、请求丢弃
- 支持多用户数据库隔离
- SQL 查询超时保护(5 秒自动中断)
- 结果集大小限制(最多 1000 行)
- 并发查询限制(串行队列)
- 完整实现
replayRequest消息处理 - 使用
.ephemeralURLSession 执行重放
- 插件化架构重构
- 统一使用
PluginManager管理所有功能模块 - 通信时间改为毫秒级
- 优化 premain 时间统计
- 修复 HTTP 请求 body 参数解析问题
- 修复包含 'create' 等关键词的查询报错问题
- 修复
tableExists()方法的内存 bug - 使用
SQLITE_TRANSIENT确保字符串正确绑定
1.0.0 ────────────────────────► 1.2.0 (当前)
│ │
│ └─ 加密数据库状态检测
│ SQLCipher 配置增强
│ ownerDisplayName 支持
│
└─ 核心功能实现
HTTP/Log/WS/DB 捕获
Mock/断点/Chaos 框架
页面耗时/性能监控
多用户数据库支持
-
无破坏性变更,直接更新依赖即可
-
加密数据库支持增强:
// 注册带有 preparationSQL 的加密数据库 SQLiteInspector.shared.registerEncrypted( id: dbId, keyProvider: { passphrase }, preparationSQL: [ "PRAGMA cipher_compatibility = 4;", "PRAGMA kdf_iter = 256000;" ] )
-
ownerDisplayName 支持:
// 数据库现在会显示所有者名称 // 需要配合 Debug Hub 1.2.0+ 使用