# 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 ```