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:
co-authored by
Claude Opus 4.7
parent
4e5600a9ee
commit
52ad421d22
Vendored
+26
-5
@@ -1,14 +1,35 @@
|
||||
# WechatOpenSDK
|
||||
|
||||
**本目录刻意不放二进制**:项目以 **SPM** 接入微信 OpenSDK(Tencent 官方维护),不走 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` 不同)
|
||||
|
||||
## 凭证
|
||||
|
||||
|
||||
@@ -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 添加微信 OpenSDK(SPM 远程依赖)
|
||||
### A.1 添加微信 OpenSDK(Vendor 手动)
|
||||
|
||||
> 项目方下载的 `WechatOpenSDK-NoPay.xcframework` 已撤出 `Vendor/`;改用 Tencent 官方 SPM 仓库。
|
||||
> Tencent 官方至今未维护 SPM 仓库(`Tencent/WechatOpenSDK-XCFramework` 不存在,404);社区 wrapper(yanyin1986 / 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 × 2(Vendor 手动,无 SPM 替代)
|
||||
|
||||
@@ -210,7 +215,7 @@ bridge.register("prepareaudio") { _, callback in
|
||||
|
||||
| 文件 | 状态 | 说明 |
|
||||
|---|---|---|
|
||||
| SPM `WechatOpenSDK-XCFramework` | ⏳ 待用户在 Xcode Add Package Dependencies | 见 §A.1,Tencent 官方仓库 |
|
||||
| `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 字段 |
|
||||
|
||||
Reference in New Issue
Block a user