diff --git a/docs-site/docs/android/setup.md b/docs-site/docs/android/setup.md index 75dd6dc..6da1aba 100644 --- a/docs-site/docs/android/setup.md +++ b/docs-site/docs/android/setup.md @@ -27,8 +27,9 @@ dependencyResolutionManagement { | sdk-core | `com.xuqm:sdk-core` | 初始化、网络、鉴权、Token 存储 | | sdk-im | `com.xuqm:sdk-im` | 单聊、群聊、消息收发、会话、好友、群组 | | sdk-push | `com.xuqm:sdk-push` | 自动检测厂商、设备 Token 注册(华为/小米/OPPO/vivo/荣耀/FCM)| -| sdk-update | `com.xuqm:sdk-update` | App 更新检查、下载安装 | +| sdk-update | `com.xuqm:sdk-update` | App 更新检查、下载安装(需配置 API Key,设置 `serviceActivated = true`)| | sdk-license | `com.xuqm:sdk-license` | 设备授权注册与验证 | +| sdk-bugcollect | `com.xuqm:sdk-bugcollect` | 崩溃日志、ANR、异常上报 | 在 `app/build.gradle.kts` 中按需引入: @@ -36,14 +37,40 @@ dependencyResolutionManagement { dependencies { implementation("com.xuqm:sdk-core:0.4.10") implementation("com.xuqm:sdk-im:0.4.10") - implementation("com.xuqm:sdk-push:0.4.10") // 按需 - implementation("com.xuqm:sdk-update:0.4.10") // 按需 - implementation("com.xuqm:sdk-license:0.4.10") // 按需 + implementation("com.xuqm:sdk-push:0.4.10") // 按需 + implementation("com.xuqm:sdk-update:0.4.10") // 按需 + implementation("com.xuqm:sdk-license:0.4.10") // 按需 + implementation("com.xuqm:sdk-bugcollect:0.4.10") // 按需 } ``` --- +## 配置文件 + +从平台控制台下载应用的 `.xuqmconfig` 配置文件(例如 `识校宝.xuqmconfig`),放置到以下任一目录: + +- `src/main/assets/config/`(推荐) +- `src/main/assets/xuqm/` + +文件名不限,只要扩展名为 `.xuqmconfig` 即可。Gradle 插件会在构建时自动扫描这两个目录并注入配置,SDK 运行时自动读取,无需手动指定路径。 + +--- + +## BugCollect + +异常采集模块可自动收集崩溃日志、ANR 和未捕获异常并上报到服务端。 + +```kotlin +dependencies { + implementation("com.xuqm:sdk-bugcollect:0.4.10") +} +``` + +集成了 Gradle 插件后,BugCollect 会随 SDK 自动初始化,无需额外代码。若使用了 `.xuqmconfig` 配置文件,采集服务地址会从配置中自动读取。 + +--- + ## 最低 Android API 版本 - `minSdk = 24`(Android 7.0) diff --git a/docs-site/docs/flutter/setup.md b/docs-site/docs/flutter/setup.md index 75dcee8..051efbe 100644 --- a/docs-site/docs/flutter/setup.md +++ b/docs-site/docs/flutter/setup.md @@ -32,6 +32,20 @@ dependencies: --- +## 配置文件 + +从平台控制台下载应用的 `.xuqmconfig` 配置文件(例如 `识校宝.xuqmconfig`),放置到 `assets/config/` 目录,并在 `pubspec.yaml` 中声明: + +```yaml +flutter: + assets: + - assets/config/ +``` + +SDK 启动时会自动扫描该目录并读取 `.xuqmconfig` 文件,无需手动指定路径。文件名不限,只要扩展名为 `.xuqmconfig` 即可。 + +--- + ## 初始化 ```dart diff --git a/docs-site/docs/guide/concepts.md b/docs-site/docs/guide/concepts.md index b4ef950..2b4ee7e 100644 --- a/docs-site/docs/guide/concepts.md +++ b/docs-site/docs/guide/concepts.md @@ -43,6 +43,21 @@ const userSig = jwt.sign( --- +## 服务模块 + +XuqmGroup 平台由以下核心服务模块组成,各模块可独立按需接入: + +| 模块 | 说明 | +|------|------| +| **IM** | 即时通讯:单聊、群聊、消息收发、会话管理、好友、群组 | +| **Push** | 消息推送:自动检测厂商通道(华为/小米/OPPO/vivo/荣耀/FCM),设备 Token 注册 | +| **Update** | 版本更新:App 更新检查、下载安装、商店跳转 | +| **License** | 授权管理:设备授权注册与验证 | +| **BugCollect** | 异常采集:崩溃日志、ANR、异常上报,支持 Android / iOS / RN 多端统一采集 | +| **File** | 文件服务:文件上传、下载、消息附件管理 | + +--- + ## 消息类型 | 类型 | 说明 | content 结构 | diff --git a/docs-site/docs/guide/flow.md b/docs-site/docs/guide/flow.md index f2cf573..10bc925 100644 --- a/docs-site/docs/guide/flow.md +++ b/docs-site/docs/guide/flow.md @@ -22,7 +22,7 @@ 6. 客户端集成私有化 SDK。 7. 客户端使用 `xuqm-private-sdk.json` 初始化。 8. 业务服务端签发 `UserSig`。 -9. 客户端登录 SDK 并使用 IM、Push、Update、File、License 能力。 +9. 客户端登录 SDK 并使用 IM、Push、Update、File、License、BugCollect 能力。 ## 服务端签发 UserSig @@ -43,7 +43,7 @@ -> 获取 userSig -> XuqmSDK.login(userId, userSig) -> IM WebSocket 连接 - -> Push / Update / License 模块按需工作 + -> Push / Update / License / BugCollect 模块按需工作 ``` ## 私有化注意事项 diff --git a/docs-site/docs/guide/quickstart.md b/docs-site/docs/guide/quickstart.md index 7154cc7..7cd8728 100644 --- a/docs-site/docs/guide/quickstart.md +++ b/docs-site/docs/guide/quickstart.md @@ -50,7 +50,23 @@ | Java | [Java Server SDK](/server/java-sdk) | | Python | [Python Server SDK](/server/python-sdk) | -## 4. 公有化初始化 +## 4. 配置文件 + +平台控制台支持为应用下载 `.xuqmconfig` 配置文件(例如 `识校宝.xuqmconfig`),该文件包含应用的 appKey、服务端地址等信息。将文件放到各平台指定位置后,SDK 会自动读取并完成初始化,无需在代码中手动传入 `appKey`。 + +各平台放置位置: + +| 平台 | 路径 | 说明 | +|------|------|------| +| Android | `src/main/assets/config/` 或 `assets/xuqm/` | 放入任一目录即可,Gradle 插件自动识别 | +| iOS | App Bundle 的 `xuqm/` 目录 | 随 App 一起打包 | +| React Native | `src/assets/config/` | `withXuqmConfig` Metro 插件自动注入 | +| Flutter | `assets/config/` | `pubspec.yaml` 中声明 `assets` | +| HarmonyOS | `src/main/resources/rawfile/config/` | 随 HAP 打包 | + +> 文件名不限,只要扩展名为 `.xuqmconfig` 即可。 + +## 5. 公有化初始化 ```kotlin XuqmSDK.initialize( @@ -59,7 +75,7 @@ XuqmSDK.initialize( ) ``` -## 5. 私有化初始化 +## 6. 私有化初始化 私有化 SDK 使用部署仓库生成的本地 JSON 初始化: @@ -87,7 +103,7 @@ JSON 内容由私有化部署仓库生成,示例: } ``` -## 6. 登录与收发消息 +## 7. 登录与收发消息 ```text 业务客户端 diff --git a/docs-site/docs/harmony/setup.md b/docs-site/docs/harmony/setup.md index ba07bf7..c789560 100644 --- a/docs-site/docs/harmony/setup.md +++ b/docs-site/docs/harmony/setup.md @@ -77,6 +77,14 @@ ohpm install --- +## 配置文件 + +从平台控制台下载应用的 `.xuqmconfig` 配置文件(例如 `识校宝.xuqmconfig`),放置到 `src/main/resources/rawfile/config/` 目录,随 HAP 一起打包。SDK 启动时会自动扫描该目录并读取配置,无需手动指定路径。 + +文件名不限,只要扩展名为 `.xuqmconfig` 即可。 + +--- + ## 初始化 ```ts diff --git a/docs-site/docs/ios/setup.md b/docs-site/docs/ios/setup.md index 592420c..cbf948c 100644 --- a/docs-site/docs/ios/setup.md +++ b/docs-site/docs/ios/setup.md @@ -74,6 +74,26 @@ let package = Package( --- +## 配置文件 + +从平台控制台下载应用的 `.xuqmconfig` 配置文件(例如 `识校宝.xuqmconfig`),放入 App Bundle 的 `xuqm/` 目录中,随 App 一起打包。SDK 启动时会自动扫描 Bundle 中的 `xuqm/` 目录并读取配置,无需手动指定路径。 + +--- + +## 用户信息 + +SDK 提供用户信息管理接口,用于标识当前用户: + +```swift +// 登录后设置用户信息 +XuqmSDK.shared.setUserInfo(userId: "user_001") + +// 登出时清除 +XuqmSDK.shared.clearUserInfo() +``` + +--- + ## 初始化 在 `AppDelegate` 或 `SceneDelegate` 中: diff --git a/docs-site/docs/rn/setup.md b/docs-site/docs/rn/setup.md index 4f6c871..8088ae9 100644 --- a/docs-site/docs/rn/setup.md +++ b/docs-site/docs/rn/setup.md @@ -25,7 +25,7 @@ yarn add @xuqm/rn-common ```bash yarn add @xuqm/rn-common @xuqm/rn-im # 或全量安装 -yarn add @xuqm/rn-common @xuqm/rn-im @xuqm/rn-push @xuqm/rn-update +yarn add @xuqm/rn-common @xuqm/rn-im @xuqm/rn-push @xuqm/rn-update @xuqm/rn-bugcollect ``` --- @@ -93,15 +93,53 @@ allprojects { ``` @xuqm/rn-sdk(meta-package,不建议业务方直接引用) - ├── @xuqm/rn-common ← 初始化、网络、设备信息 - ├── @xuqm/rn-im ← IM 模块(依赖 WatermelonDB) - ├── @xuqm/rn-push ← Push 模块 - ├── @xuqm/rn-update ← 更新模块 - └── @xuqm/rn-license ← 授权管理模块(依赖 react-native-quick-crypto) + ├── @xuqm/rn-common ← 初始化、网络、设备信息 + ├── @xuqm/rn-im ← IM 模块(依赖 WatermelonDB) + ├── @xuqm/rn-push ← Push 模块 + ├── @xuqm/rn-update ← 更新模块 + ├── @xuqm/rn-license ← 授权管理模块(依赖 react-native-quick-crypto) + └── @xuqm/rn-bugcollect ← 异常采集模块(崩溃、ANR 上报) ``` --- +## Metro 配置 + +使用 `withXuqmConfig` Metro 插件替代手动 alias 配置。该插件会自动处理 RN SDK 的模块解析,并注入 `.xuqmconfig` 配置文件: + +```js +// metro.config.js +const { withXuqmConfig } = require('@xuqm/rn-common/metro') + +module.exports = withXuqmConfig({ + // 你的原始 Metro 配置 +}) +``` + +> 不再需要手动配置 `resolver.extraNodeModules` 或 alias。 + +--- + +## 配置文件 + +从平台控制台下载应用的 `.xuqmconfig` 配置文件(例如 `识校宝.xuqmconfig`),放置到 `src/assets/config/` 目录。`withXuqmConfig` 插件会自动发现并注入该配置,SDK 运行时自动读取,无需手动指定路径。 + +文件名不限,只要扩展名为 `.xuqmconfig` 即可。 + +--- + +## BugCollect + +异常采集模块可自动收集 JS 异常、原生崩溃日志并上报到服务端。 + +```bash +yarn add @xuqm/rn-bugcollect +``` + +集成了 `withXuqmConfig` 插件后,BugCollect 会随 SDK 自动初始化,无需额外代码。采集服务地址从 `.xuqmconfig` 配置中自动读取。 + +--- + ## 下一步 - [RN IM 接入 →](./im)