XuqmGroup-RNSDK/docs/架构总览.md

42 行
1.6 KiB
Markdown

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

# XuqmGroup RN SDK 架构
## 唯一基座
`@xuqm/rn-common` 是唯一可以独立使用的基础包,负责:
- 为官方扩展提供从 `src/assets/config/` 内唯一 `.xuqmconfig` 自动初始化的共享上下文;common 单独使用时不启动初始化;
- 维护唯一的 SDK 配置和用户会话;
- 网络、访问令牌、签名、文件、时间、加密、设备信息和通用 UI;
- 将一次 `XuqmSDK.login()` / `logout()` 传播给官方扩展包。
common 的文件、时间、网络、加密、设备、UI 和 hooks 不要求初始化或登录。配置与会话只在启用扩展包时形成统一 SDK 上下文。
`rn-update`、`rn-xwebview`、`rn-bugcollect`、`rn-im`、`rn-push` 都以 peer dependency 依赖同一个 common 实例。扩展包不得再实现独立初始化、独立 token 或独立用户状态。
## 生命周期
```text
配置文件 + withXuqmConfig
common 自动初始化(同配置并发复用一个 Promise
宿主登录成功后调用一次 XuqmSDK.login
common 串行更新 accessToken / userId
已安装扩展包接收同一次会话通知
宿主退出时调用一次 XuqmSDK.logout
```
内部订阅入口位于 `@xuqm/rn-common/internal`,仅供官方扩展包使用。应用代码只能使用 common 顶层公共 API。
## 发布与集成
包管理统一使用 pnpm 11。开发版本发布到 `https://nexus.xuqinmin.com/repository/npm-hosted/`;宿主从 npm group 仓库安装精确版本,禁止使用跨仓库 `file:` 依赖。
```bash
corepack pnpm validate
corepack pnpm --filter @xuqm/rn-common publish --tag next --no-git-checks
```