调整极光
This commit is contained in:
@@ -132,15 +132,15 @@ Daoqi/
|
||||
│ ├── LocationKit/ # 高德定位
|
||||
│ ├── DeviceKit/ # 设备信息/电池/网络/振动
|
||||
│ ├── VideoRoomKit/ # Agora 封装
|
||||
│ ├── AnalyticsKit/ # 极光、Sentry
|
||||
│ ├── AnalyticsKit/ # Sentry(默认启用) / JAnalytics 极光(暂不集成,Noop 占位)
|
||||
│ ├── Logger/ # 统一日志
|
||||
│ └── Foundation+/ # 通用扩展
|
||||
├── Vendor/ # 闭源 SDK(.framework / .a)
|
||||
│ ├── WechatSDK.framework # 启用
|
||||
│ ├── AMapLocationKit.framework # 启用
|
||||
│ ├── JAnalytics.framework # 启用
|
||||
│ └── libopencore-amr*.a # 启用
|
||||
│ # 暂不集成(对应代码模块用 Noop 占位):
|
||||
│ # - JAnalytics.framework # 启用用户统计时再放入
|
||||
│ # - XianliaoSDK.framework # 启用闲聊分享时再放入
|
||||
│ # - AgoraRtcKit.framework # 启用视频房间时再放入(或改用 SPM)
|
||||
├── Resources/
|
||||
@@ -191,7 +191,7 @@ Daoqi/
|
||||
| `LocationKit` | `LocationService` | AMapKit Wrapper |
|
||||
| `DeviceKit` | `DeviceInfo`, `BatteryMonitor`, `NetworkMonitor`, `Vibrator`, `Pasteboard` | Foundation+ |
|
||||
| `VideoRoomKit` | `VideoRoom`(协议) → `NoopVideoRoom` 当前启用 / `AgoraVideoRoom` 留蓝图 | (Agora SDK 暂未引入) |
|
||||
| `AnalyticsKit` | `Analytics`(协议) → `SentryCrashReporter` / `JAnalytics` | SDK Wrappers |
|
||||
| `AnalyticsKit` | `CrashReporter`(协议) → `SentryCrashReporter` 启用 / `Tracker`(协议) → `NoopAnalytics` 当前启用 / `JAnalyticsTracker` 留蓝图 | SDK Wrappers |
|
||||
|
||||
---
|
||||
|
||||
@@ -548,10 +548,9 @@ SceneDelegate.scene(_:willConnectTo:options:) T=0
|
||||
│
|
||||
├─► (并行) SDK 注册 T=0
|
||||
│ • WeChat ~10 ms
|
||||
│ • JAnalytics ~10 ms
|
||||
│ • AMap (privacy + key) ~15 ms
|
||||
│ • crashReporter.start() ~20 ms(Sentry 默认启用)
|
||||
│ (Xianliao / Agora / Bugly 当前未集成,见 §14.2)
|
||||
│ (JAnalytics 极光 / Xianliao 闲聊 / Agora 声网 / Bugly 当前未集成,见 §14.2)
|
||||
│ 并发 Task,await 全部完成
|
||||
│
|
||||
├─► Window 创建 + LobbyViewController push T=50ms
|
||||
@@ -618,8 +617,8 @@ final class Bootstrapper {
|
||||
private func registerSDKs() async {
|
||||
await withTaskGroup(of: Void.self) { group in
|
||||
group.addTask { WeChatSDK.registerFull(appId: AppIDs.weChat) } // 含 contentFlag
|
||||
// XianliaoSDK 暂不集成(§14.2);Agora 同样,懒加载也无需启动注册
|
||||
group.addTask { AnalyticsKit.start() }
|
||||
// JAnalytics(极光) / XianliaoSDK(闲聊) / Agora(声网) 暂不集成(§14.2)
|
||||
// — 对应模块用 Noop 占位,首版不参与启动注册
|
||||
group.addTask { AMapWrapper.configure() }
|
||||
group.addTask { crashReporter.start() } // SentryCrashReporter by default; Noop if SENTRY_ENABLED=0
|
||||
}
|
||||
@@ -2085,7 +2084,7 @@ done
|
||||
|
||||
1. **首选 SPM** —— Apple 官方,Xcode 原生集成,无第三方工具依赖,无衍生工程文件污染,新人 clone 即用。适用于:Sentry、ZIPFoundation、Agora 4.x、七牛 v8+ 等**已发布官方 Swift Package** 的库
|
||||
2. **CocoaPods 兜底** —— 用于"有 podspec 但暂无 SPM 包"的 SDK,主要是高德定位、部分 Agora 旧版兼容场景。Podfile 仅写必须的 Pod,不引入大规模 transitive 依赖
|
||||
3. **Vendor 手动** —— `Vendor/` 目录直接放闭源 `.framework` / `.a`,xcconfig 配置 link flag。适用于:微信 OpenSDK、QQ OpenSDK、闲聊 SDK、JAnalytics、opencore-amr 等**官方不提供 SPM / Pod 的私有 framework**
|
||||
3. **Vendor 手动** —— `Vendor/` 目录直接放闭源 `.framework` / `.a`,xcconfig 配置 link flag。适用于:微信 OpenSDK、QQ OpenSDK、闲聊 SDK(暂不集成)、JAnalytics(暂不集成)、opencore-amr 等**官方不提供 SPM / Pod 的私有 framework**
|
||||
|
||||
#### 为什么不选纯 SPM
|
||||
微信 / QQ / 闲聊 / JAnalytics 等闭源 SDK 官方至今(2026)未提供 Swift Package,强行纯 SPM 化需要自己包一层私有 Package,维护成本反而上升。
|
||||
@@ -2109,7 +2108,7 @@ Sentry / ZIPFoundation 等纯 Swift 包走 Pods 需绕一道 podspec,失去 SPM
|
||||
| opencore-amr | 静态 `.a`(直接接入 — H5 端通过此库收发的 AMR 音频是契约边界) | 2014 版本 | ✅ 启用 |
|
||||
| ZIPFoundation | **SPM** | latest | ✅ 启用 |
|
||||
| Sentry-Cocoa | **SPM**(默认 ON,编译开关 `SENTRY_ENABLED` 提供逃生口) | latest | ✅ 启用,启动并发注册 |
|
||||
| JAnalytics | Vendor | 现网版本 | ✅ 启用,启动注册 |
|
||||
| **JAnalytics(极光)** | — | — | ⏸️ **暂不集成**(`AnalyticsKit.tracker = NoopAnalytics`)。新外壳首版不接用户统计 — 现网 msext 的极光后端运维状态不可知,且 Sentry 的 breadcrumb / transaction 可兜一部分行为指标。启用时:① Vendor `.framework` 放入 ② `NoopAnalytics` 换为 `JAnalyticsTracker` ③ Info.plist 加 AppKey ④ Bootstrapper 注册 |
|
||||
| **Bugly** | — | — | ⏸️ **不集成**。Sentry 已覆盖崩溃 / 性能监控,无需 Bugly。未来若有强需求(如旧外壳数据迁移),再单独评估 |
|
||||
|
||||
> **微信 OAuth 架构决策**:新项目走**后台中转** —— 客户端把 `code` 发给后台 `/wechat/login` 接口,由后台完成 `access_token` + `userinfo` 拉取,再回传 7 个字段给客户端,客户端最终 `callHandler:@"sharelogin"` 给 H5。
|
||||
|
||||
Reference in New Issue
Block a user