新增模块:XuqmBugCollectSDK - BugCollectSDK: 主入口,错误捕获 API - CrashCapture: 崩溃捕获(NSException + POSIX 信号) - IssueEvent/LogEvent: 数据模型 - Fingerprint: 错误指纹计算(SHA-256) - LogQueue: 内存队列 + 定时上传 - LogStorage: 崩溃文件持久化 - LogUploader: HTTP 上传到服务端 - FunnelTracker: 漏斗追踪 功能: - captureError/captureCrash 捕获错误 - addBreadcrumb 添加面包屑 - event 记录自定义事件 - warn/info 日志级别记录 - 自动初始化(onInitialize hook) Co-Authored-By: Claude <noreply@anthropic.com>
32 行
720 B
Swift
32 行
720 B
Swift
import Foundation
|
|
|
|
/// 漏斗追踪器
|
|
final class FunnelTracker {
|
|
|
|
static let shared = FunnelTracker()
|
|
|
|
private var sessions: [String: [String]] = [:]
|
|
private let lock = NSLock()
|
|
|
|
private init() {}
|
|
|
|
/// 追踪事件
|
|
func track(name: String, properties: [String: Any?]) {
|
|
// 简化实现,后续可扩展
|
|
}
|
|
|
|
/// 获取当前会话的事件序列
|
|
func getSessionEvents(sessionId: String) -> [String] {
|
|
lock.lock()
|
|
defer { lock.unlock() }
|
|
return sessions[sessionId] ?? []
|
|
}
|
|
|
|
/// 清除会话
|
|
func clearSession(_ sessionId: String) {
|
|
lock.lock()
|
|
defer { lock.unlock() }
|
|
sessions.removeValue(forKey: sessionId)
|
|
}
|
|
}
|