SDK 选型修正:微信回 Vendor 路径(Tencent 无官方 SPM)

之前文档把 https://github.com/Tencent/WechatOpenSDK-XCFramework 当作
SPM 入口,实际该仓库不存在(404)。Tencent 官方至今未维护 SPM;社区
wrapper(yanyin1986 / anotheren)非官方,按 daoqi CLAUDE.md ADR-006
「闭源 SDK 走 Vendor」否决。微信改回与 AMap 同款 Vendor .xcframework
处置:

- Vendor/WechatSDK/README.md 重写为腾讯开放平台下载页 + Embed & Sign 说明
- docs/SDK-Integration-Guide.md §A / §A.1 / §1.3 同步修正
  - §A 总览:SPM × 1(七牛)+ Vendor × 2(微信 / 高德)
  - §A.1:重写为 Vendor Add Files 流程,强调 Embed & Sign 与 AMap
    静态库 Do Not Embed 的区别
  - §1.3:微信 xcframework 状态标记  等用户从官方下载放置

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
joywayer
2026-06-23 00:02:45 +08:00
co-authored by Claude Opus 4.7
parent 4e5600a9ee
commit 52ad421d22
2 changed files with 42 additions and 16 deletions
+26 -5
View File
@@ -1,14 +1,35 @@
# WechatOpenSDK
**本目录刻意不放二进制**:项目以 **SPM** 接入微信 OpenSDKTencent 官方维护),不走 Vendor xcframework。详见 `docs/SDK-Integration-Guide.md §A.1`
> 闭源 SDK,按 daoqi `CLAUDE.md` ADR-006 走 **Vendor `.xcframework`** 路径
>
> 历史选型对比:曾考虑 Tencent 官方 SPM`https://github.com/Tencent/WechatOpenSDK-XCFramework`),但该仓库**不存在**404);社区 wrapper`yanyin1986/WechatOpenSDK`、`anotheren/WechatOpenSDK`)存在但非 Tencent 官方维护,仓库一旦停更/删除即为定时炸弹,被否决。
## 二进制来源
| 项 | 值 |
|---|---|
| 来源 | Tencent 官方 SPM 仓库 |
| SPM URL | `https://github.com/Tencent/WechatOpenSDK-XCFramework` |
| 推荐版本 | `2.0.5` 或更新(SDK1.x 有 ITMS-90809 历史包袱,避免 |
| 官方下载页 | <https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=215840645315192a89cc59f0f9b4a1ccff0fed81&lang=zh_CN> |
| 推荐版本 | OpenSDK **2.0.5** 或更新(避免 1.x 的 ITMS-90809 历史包袱;新外壳不上 App Store 仍建议用 2.x,与 msext 行为差异最小) |
| 包形态 | `OpenSDK*_NoPay.zip`(不含支付能力,符合本项目需求 |
| 解压产物 | `WechatOpenSDK.xcframework`(含 ios-arm64 + ios-arm64_x86_64-simulator slice |
| 模块名 | `WechatOpenSDK``import WechatOpenSDK` / `#import <WechatOpenSDK/WXApi.h>` |
| 替代二进制 | 项目方曾下载 `WechatOpenSDK-NoPay.xcframework``docs/res/`,**改 SPM 后不再使用**,可保留作为离线备份 |
## 放置路径
```
ylgamehall/
├── Vendor/
│ └── WechatSDK/
│ ├── README.md ← 本文件
│ └── WechatOpenSDK.xcframework/ ← 用户从官方下载后放这里
```
## Xcode 接入
`docs/SDK-Integration-Guide.md §A.1`。要点:
- Target → General → Frameworks, Libraries, and Embedded Content → `+` → Add Files → 选 `Vendor/WechatSDK/WechatOpenSDK.xcframework`
- **Embed 选 `Embed & Sign`**xcframework 是动态库,与 AMap 静态 `.framework``Do Not Embed` 不同)
## 凭证
+16 -11
View File
@@ -10,20 +10,25 @@
## A. 用户手动 Xcode 步骤(必做 3 件事)
> **选型偏好**尽量 SPM 远程依赖;只有官方未提供 SPM 的走 Vendor 二进制。
> 当前结果:**微信 + 七牛走 SPM**pbxproj 仅多 2 个 `XCRemoteSwiftPackageReference`,与现有 ZIPFoundation 一致);**高德走 Vendor**(官方未提供 SPM)。
> **选型偏好**官方 SPM 优先;闭源 / 无官方 SPM 的走 Vendor 二进制(社区 SPM wrapper 不计入官方,仓库一旦停更即为定时炸弹,按 daoqi `CLAUDE.md` ADR-006 否决)
> 当前结果:
> - **七牛走官方 SPM**`https://github.com/qiniu/objc-sdk`,活跃维护)
> - **微信走 Vendor**Tencent 不维护官方 SPM;社区 wrapper 风险高,回 Vendor 与 AMap 统一处置)
> - **高德走 Vendor**(官方未提供 SPM
>
> 这 3 件事都是 Xcode UI 操作,无法 AI 自动完成。完成后 `BuildProject` 即激活所有真实路径。
### A.1 添加微信 OpenSDKSPM 远程依赖
### A.1 添加微信 OpenSDKVendor 手动
> 项目方下载的 `WechatOpenSDK-NoPay.xcframework` 已撤出 `Vendor/`;改用 Tencent 官方 SPM 仓库
> Tencent 官方至今未维护 SPM 仓库(`Tencent/WechatOpenSDK-XCFramework` 不存在,404);社区 wrapperyanyin1986 / anotheren)非官方,被否决。改走 Vendor `.xcframework`,与 AMap 同款处置方式
1. Xcode → File → **Add Package Dependencies...**
2. 右上搜索框粘贴:`https://github.com/Tencent/WechatOpenSDK-XCFramework`
3. **Dependency Rule****Up to Next Major Version**`2.0.5`(或更新;避免 1.x 的 ITMS-90809 历史包袱)
4. Add Package → 弹窗里 Library 选 `WechatOpenSDK` → Add Package
5. 确认 ylgamehall target 已勾选
6. ⌘B 编译
**预先准备**:从腾讯开放平台下载 `OpenSDK*_NoPay.zip`(推荐 2.0.5+),解压取出 `WechatOpenSDK.xcframework`,放到 `Vendor/WechatSDK/`。下载页与详细说明见 `Vendor/WechatSDK/README.md`
1. 选中 `ylgamehall` Target → General → Frameworks, Libraries, and Embedded Content
2.`+` → Add Other → Add Files
3.`Vendor/WechatSDK/WechatOpenSDK.xcframework`
4. **Embed** 列选 **Embed & Sign**xcframework 是动态库,与下面 AMap 的 `Do Not Embed` 不同,别错)
5. ⌘B 编译
### A.2 添加高德定位 framework × 2Vendor 手动,无 SPM 替代)
@@ -210,7 +215,7 @@ bridge.register("prepareaudio") { _, callback in
| 文件 | 状态 | 说明 |
|---|---|---|
| SPM `WechatOpenSDK-XCFramework` | ⏳ 用户在 Xcode Add Package Dependencies | 见 §A.1Tencent 官方仓库 |
| `Vendor/WechatSDK/WechatOpenSDK.xcframework` | ⏳ 用户放置 | 项目方从腾讯开放平台下 `OpenSDK2.0.5+_NoPay.zip` 解压 → 放进 `Vendor/WechatSDK/` → 按 §A.1 Embed & Sign |
| `Source/SDK/WeChat/WeChatSDK.swift` | ✅ 已写 | `register()` + `handleOpenURL` 包 canImport |
| `Source/SDK/WeChat/WeChatManager.swift` | ✅ 已写 | authorize / shareLink async wrapper + WXApiDelegate |
| `Source/Login/WeChatAuth.swift` | ✅ 已写 | OAuth2 客户端直拼 sns/oauth2 + userinfo + 7 字段 |