Phase 4 方向再次纠正:撤销 A,QQ + 抖音 SharePanel 三选一不依 SDK
用户提示"原项目还有 QQ 分享、抖音分享"。深度调研发现: 上一轮 A 方向决策 (a6095ef) 错了 — grep 范围之前仅看 NewRootVC.m, 漏了 gameController.m。msext gameController.m:575-597 显示 H5 调 friendsShare 时原生**弹 SharePanel 三选一面板**: sharefriend == 1 → SharePanel.showWithDictionary(微信好友 / QQ / 抖音) sharefriend == 2 → WechatShareManager.shareWithContent(朋友圈) Contract §3.1 [2]旧描述(sharetype=3 闲聊)已被 msext 新代码覆盖; sharetype 字段在新代码里读了但不用。 调研 QQ + 抖音是否需要 SDK: - QQShareManager.m:14: __has_include(<TencentOpenAPI/QQApiInterface.h>) 条件编译 + line 716-771 simpleShareToQQFriend URL Scheme fallback (mqqapi://share/to_fri?...) — **不依赖 SDK** - DouyinShareManager.m: 只 import Photos + MobileCoreServices; 全程 URL Scheme(snssdk1128://share/video / camera)+ 保存截图到 相册让用户在抖音里选 — **不依赖 SDK** 撤销 A 决策。新方向(Plan §5 4.2-4.4): - 4.2 SharePanel 三选一面板(msext gameController.m:585 等价行为) - 4.3 QQShare URL Scheme(移植 simpleShareToQQFriend) - 4.4 DouyinShare URL Scheme + Photos - 4.5(原 4.B)微信 SDK 接入(仍需项目方提供 framework + AppID + UL) 文档同步: - Plan §2.3 阻塞表:QQ 改为"不需要 SDK,走 URL Scheme";抖音同款 - Plan §5 Phase 4:4.2 重写为 SharePanel 设计 + 4.3 QQ + 4.4 抖音 + 4.5 微信 - CLAUDE.md 依赖管理段:"不接入 QQ SDK / 也不接入抖音 SDK", 含 LSApplicationQueriesSchemes + NSPhotoLibraryAddUsageDescription 说明 - Verification-Checklist L/M/N 章节:SharePanel + QQ + 抖音验证项 - Plan §6.4 里程碑加纠正记录(标a6095ef已撤销) 下一步:代码实施 4.B SharePlatform 协议 + SharePanel UI + ShareCenter 分发。 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
a6095ef4c8
commit
b071ced657
@@ -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 分享**: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**,是独立于契约的另一条路径
|
||||
- **不接入 QQ SDK / 也不接入抖音 SDK**:H5 调 `friendsShare(sharefriend=1, ...)` 时原生弹 SharePanel 三选一(微信好友 / QQ / 抖音,参 msext `gameController.m:585`)。QQ 走 URL Scheme(`mqqapi://share/to_fri?...`,参 msext `QQShareManager.m:14` `__has_include` fallback),抖音走 URL Scheme + Photos(`snssdk1128://share/video` + 保存截图到相册让用户在抖音里选,参 msext `DouyinShareManager.m`)。两者都无 SDK 依赖,Info.plist 仅需 `LSApplicationQueriesSchemes`(`mqq` / `mqqapi` / `mqqopensdkfriend` / `snssdk1128`)+ `NSPhotoLibraryAddUsageDescription`(抖音需要写入相册)
|
||||
- **禁止 CocoaPods**:项目内不放 `Podfile` / `Podfile.lock` / `Pods/` / `.xcworkspace`。工程入口固定为 `ylgamehall.xcodeproj`
|
||||
- **新增第三方依赖时**:按 SPM → Vendor 顺序尝试,PR 描述写明选型理由;若发现某 SDK 既无 SPM 又无 XCFramework,回到 ADR-006 决策框架重新评估
|
||||
|
||||
|
||||
Reference in New Issue
Block a user