主题
晞晗IM(XHIM)商业交付与客户接入指南
适用对象:XHIM 销售/交付人员、购买方技术负责人、客户端和服务端开发者。
XHIM 可以作为一套“客户端 SDK + 可私有部署服务端”产品交付。销售前不需要替 购买方准备真实域名、Apple/Google/Huawei 账号、App 证书、对象存储、KMS 或 生产数据库;这些都属于购买方自己的部署环境。
需要在 XHIM 交付侧准备的是:可安装的固定版本 SDK 包、对应服务端版本、接入 文档、示例、校验值、许可证和明确的支持范围。
1. 标准交付内容
建议每个销售版本使用同一个版本号,并按以下目录交付:
text
XHIM-<version>/
├── client/
│ ├── ios/ XCFramework + Swift Package/CocoaPods
│ ├── macos/ XCFramework + Swift Package
│ ├── android/ Maven Repository 或 AAR
│ ├── windows/ NuGet
│ ├── harmony/ HAR/OHPM
│ ├── flutter/ pub plugin + 原生依赖锁
│ └── electron/ npm + Electron ABI prebuild
├── server/ 服务端源码、容器部署文件和管理后台
├── examples/ 各声明支持平台的最小示例
├── docs/ 客户接入、服务端部署、升级和 API 说明
├── RELEASE-MANIFEST.json
├── CHECKSUMS.txt
├── CHANGELOG.md
├── LICENSE
└── NOTICE客户端 SDK 与服务端必须使用发布清单声明的兼容版本。不要让客户从任意 Git 提交自行拼装不同版本的 Core、平台 Wrapper 和 Server。
2. 不需要 XHIM 交付方代客户准备的内容
以下内容由购买方在自己的账号和基础设施中配置:
- App Store、企业签名、Android/HarmonyOS/Windows 应用签名;
- 客户自己的域名、HTTPS 证书、内外网 IP 和防火墙;
- PostgreSQL、对象存储、CDN、备份、监控和告警;
- APNs、FCM、Huawei Push 等厂商凭证;
- 客户业务账号系统、用户数据和权限模型;
- 隐私政策、上架材料、数据保留策略和当地合规审批;
- 真实用户容量目标、生产压测和上线时间表。
XHIM 应提供配置入口、模板和说明,但不在通用销售包中写入任何客户密钥。
3. 购买方接入只分两条线
text
客户端团队 服务端团队
添加对应平台 SDK 部署 XHIM Server
填写一个 Server URL 配置自己的域名和数据库
传入当前业务 User ID 对接自己的业务登录系统
使用 SDK/UI Kit 配置媒体、Push 和管理后台两条线可以并行。客户端 QuickStart 不包含容器、数据库或运维命令;服务端文档 也不要求客户端开发者编译 C++ Core。
4. 客户端最短接入路径
4.1 联调或产品演示
购买方部署 Development Server,或使用 XHIM 提供的临时演示环境后,各端只传:
text
Server URL + User ID例如 iOS:
swift
let client = try await XHIMClient.connect(
server: "https://im-test.customer.com",
userID: "alice"
)macOS、Android、Windows、HarmonyOS、Flutter、Electron 和 Web 使用各自 QuickStart 中的连接入口。 Development Server 负责测试账号登录,App 页面不填写密码或 Token。
4.2 购买方正式业务
正式环境不能仅凭一个可伪造的 User ID 登录。购买方只需要在 App 的账号层提供 一个“XHIM 业务鉴权回调”:
text
当前 App 已登录会话
→ 调用购买方自己的业务后端
→ 返回 XHIM 登录票据
→ SDK 自动登录和续期这是一个回调,不是要求每个页面管理短期 Token。票据格式、刷新、并发合并和 提交都由 XHIM SDK 与 Server 处理;页面、Cell、Composable、Window 和 ArkUI Component 不接触它。
如果购买方暂时没有业务账号系统,可以先用 Development 模式验收全部 IM 功能, 但不应把免鉴权模式开放到公网生产环境。
5. 平台入口
| 平台 | 客户拿到的包 | 从零接入 |
|---|---|---|
| iOS | CocoaPods 或二进制 Swift Package | iOS / CocoaPods |
| macOS | 二进制 Swift Package | macOS |
| Android | Maven 包或 AAR | Android |
| Windows | NuGet | Windows |
| HarmonyOS | HAR/OHPM | HarmonyOS |
| Flutter | pub plugin + 原生依赖 | Flutter |
| Electron | npm + Electron ABI prebuild | Electron |
所有平台都提供 Headless SDK;基础 UI Kit 可选。客户可以只替换 UI,不修改 C++ Core,也可以使用版本化自定义消息 API 扩展自己的业务消息。
6. 服务端交付
购买方服务端人员从 XHIM Server 文档 开始。首次验收 建议按以下顺序:
- 启动 XHIM Server 与 PostgreSQL;
- 设置购买方自己的公开 Server URL;
- 创建 App、两个测试用户和一个双方可见的会话;
- 把 Server URL、两个 User ID 和 Conversation ID 交给客户端;
- 两个客户端完成文字、图片、文件、已读和断线恢复测试;
- 再按需配置对象存储、内容审核、Push 和业务鉴权。
管理后台随服务端交付,地址和管理员认证由购买方部署人员配置。XHIM 销售包 不能内置通用管理员密码。
7. XHIM 交付方仍需保证什么
“不替客户配置生产环境”不等于可以省略 SDK 产品质量。每个销售版本仍应保证:
- 每个声明支持的平台包都能被空白工程安装,示例只依赖公开 API;
- Core、平台 Wrapper、Server 和数据库 Schema 版本兼容;
- 固定版本、校验值、变更记录、许可证和升级说明完整;
- 默认不内置客户密钥、测试管理员密码或生产账号;
- Development 与 Production 行为有明确边界;
- 已知限制、可选能力和支持平台写入发布说明;
- 客户能够独立修改域名、IP、数据库、对象存储和 Push Provider。
真机矩阵、安全扫描和兼容测试是 XHIM 自己对“这个发行包质量”的证明;客户 域名、客户证书和客户生产容量则由购买方在上线前验证。两者不能混为一谈。
8. 推荐的销售验收方式
销售演示不必使用客户生产环境。可以提供一个隔离的 Development 演示 Server, 并准备 Alice/Bob 两个测试账号:
text
设备 A / Alice ─┐
├─ XHIM Development Server
设备 B / Bob ─┘现场验证登录、文字、图片、视频、文件、自定义消息、已读、离线重连和账号切换。 成交后,购买方再把相同 SDK 指向自己的 Server URL,无需重新编译 XHIM Core。