Phase 4 方向最终决策 A:QQ 不在 H5 桥范围,不实施

深度 grep msext NewRootVC.m / gameController.m 未发现 QQShareManager
引用 — QQ 完全不接 H5 桥。Contract §3.1 [2] sharetype 取值仅 "1"/"2"=
微信 / "3"=闲聊,无 QQ 选项。

按 CLAUDE.md 原则 A(H5 端零修改不可妥协):契约不变 → H5 桥不实现
QQ 分享。msext 里 QQShareManager 只服务于原生 SharePanel(独立功能),
新外壳无原生 SharePanel-like 入口需求 → 也不需要 QQShareManager。

文档同步调整为"不实施":
  - Plan §2.3 阻塞表:QQ OpenSDK 改写为详细理由(H5 桥契约无 QQ
    选项 + msext QQShareManager 不接 H5 桥的 grep 证据)
  - Plan §5 Phase 4.2:从"QQ 改走 URL Scheme"改为"不实施",但保留
    URL Scheme 备用知识库(未来如需原生入口可参 msext fallback)
  - CLAUDE.md 依赖管理段:"不接入 QQ SDK 也不实现 QQ 分享",明示
    原因(契约无 QQ + msext 行为)
  - Verification-Checklist L 章节:QQ 验证项删除(不实施无需验证)

Phase 4 至此剩 4.B 微信 SDK 接入(项目方阻塞)+ 4.D 截图/远端图分享
(依赖 4.B)。当前 stub 已让 H5 调登录/分享不报 "no handler",
等微信 SDK 到位后升级。

Plan §6.4 里程碑加一行决策记录。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
joywayer
2026-06-22 19:45:12 +08:00
co-authored by Claude Opus 4.7
parent aa80aec18c
commit a6095ef4c8
3 changed files with 11 additions and 14 deletions
+1 -1
View File
@@ -128,7 +128,7 @@ daoqi 仓库当前并存两条工作线:
- **首选 SPM**:开源 / 官方提供 Swift Package 的库(Sentry / ZIPFoundation / 七牛 `https://github.com/qiniu/objc-sdk` v8.9.x 等)
- **Vendor `.xcframework` 手动**:所有闭源二进制(微信 / 高德 AMap / opencore-amr 等),按 Design §14.1「Vendor 接入标准流程」放 `Vendor/<SDKName>/` + Target → General → Frameworks 加入 + `Vendor/<SDKName>/README.md` 记录版本与来源
- **不接入 QQ SDK**QQ 分享走 URL Scheme 直接调起 QQ app`mqqapi://share/to_fri?...` 等),参 msext `QQShareManager.m` line 14 `__has_include` 条件编译的 fallback 路径。不需要 SDK、不需要 AppID 注册、不需要 handleOpenURL 回调(URL Scheme 单向调起,调起即视为 success)。Info.plist 仅需加 `LSApplicationQueriesSchemes``mqq` / `mqqapi` / `mqqopensdkfriend` 等)
- **不接入 QQ SDK / 也不实现 QQ 分享**Contract §3.1 2`friendsShare.sharetype` 取值仅 "1"/"2"=微信 / "3"=闲聊,**无 QQ 选项**。msext 的 QQShareManager 只服务于原生 SharePanel(独立功能,不接 H5 桥)。新外壳契约不变 → H5 桥不实现 QQ 分享。如未来需 QQ 入口(原生 SharePanel-like),可走 URL Scheme 方案`mqqapi://share/to_fri?...`,参 msext `QQShareManager.m:14` `__has_include` fallback)—— 但**不会触发 H5 桥 sharesuccess**,是独立于契约的另一条路径
- **禁止 CocoaPods**:项目内不放 `Podfile` / `Podfile.lock` / `Pods/` / `.xcworkspace`。工程入口固定为 `ylgamehall.xcodeproj`
- **新增第三方依赖时**:按 SPM → Vendor 顺序尝试,PR 描述写明选型理由;若发现某 SDK 既无 SPM 又无 XCFramework,回到 ADR-006 决策框架重新评估