macOS 桌面端
口径说明
融云公开文档不覆盖 macOS 原生 SDK 与桌面交付链(dmg / 代码签名 / 公证 / 分发 / Gatekeeper);本页为本项目按 Apple 与 Electron 官方实践补齐的接入文档。
macOS 桌面端以 Electron 35 交付:主进程持有唯一的 IMLib 客户端与 SQLite 写者,preload 通过 contextBridge 暴露具名白名单方法,渲染进程只做 UI 与薄代理。一份代码同时产出 .app 与 .dmg,支持 x64 与 Apple Silicon(arm64),最低 macOS 11 Big Sur。
平台状态
绑定状态:ga;IMLib 与 Electron 共用同一套公开符号(inherits: electron),语义操作 103 个、IMKit 组件 10 个。
验证环境:macOS 15 (x86_64) · Electron 35.0.1 · Node 22。
macOS 桌面端与融云一致以 Electron 交付:主进程 IMLib + 本地 SQLite,渲染进程 IMKit;本机真实构建、启动、连接、收发与打包 .app 验证。
能力总览
| 能力域 | 操作数 | 说明 |
|---|---|---|
| 连接与监听 | 7 | 长连接、断线重连、离线补发、事件(数量由 IDL 生成) |
| 消息 | 26 | 文本 / 图片 / 文件 / 语音 / 位置 / 自定义、撤回、已读、搜索 |
| 会话 | 22 | 会话列表、未读、草稿、置顶、免打扰、标签 |
| 用户与好友 | 21 | 资料、在线状态、好友与黑名单 |
| 群组与聊天室 | 25 | 群成员 / 群管理、超级群频道、聊天室 |
| 系统通知与上传 | 2 | 系统通知、文件上传 |
| IMKit 组件 | 10 | 会话列表、会话页、气泡、输入区、头像、角标、时间分割、状态、主题、门面 |
逐项签名与参数见 IMLib 功能列表 与 IMKit 功能列表;全部操作由 IDL 生成,无手写漂移。
交付形态
| 项 | 值 |
|---|---|
| 系统要求 | macOS 11 Big Sur+(x64 / arm64 双架构;x64 本机实测,arm64 CI 构建) |
| 运行时 | Electron 35(内置 Node.js 22) |
| 安装包 | .dmg(拖入 Applications);同时产出可双击的 .app |
| SDK 包 | @ni-paas-im/electron@0.1.0(主进程 IMLib + 本地库 + preload 桥) |
| 签名 | 本地验证用 ad-hoc;对外发布用 Developer ID Application + 公证(notarization) |
| 本地存储 | 主进程 SQLite(单写者):`dbPath` 是目录,库文件为 ` |
| 自动更新 | 按需接入(更新元数据与差分下载由分发服务提供) |
文档地图
- 快速开始:从零跑通主进程连接 + 渲染进程 UI
- 环境要求:Node / Electron / Xcode 命令行工具
- 安装:依赖、入口与类型声明
- 架构:主进程 / preload / 渲染进程与 IPC 白名单
- 本地 SQLite:库位置、表结构、迁移与备份
- 构建 · 打包 .app / dmg · 代码签名 · 公证 · 分发 · Gatekeeper 排障
- API Reference:103 个语义操作 + 10 个组件(IDL 生成)
- 错误码 · 事件与回调 · 性能与稳定性 · 更新日志 · Release Notes
与其它平台的关系
| 平台 | 关系 |
|---|---|
| Electron | 同一套公开符号与进程模型;macOS 分区补充 mac 专属的构建 / 签名 / 公证 / 分发链路 |
| Web | IMLib 的 API 面一致,IMKit 组件复用同一套 DOM 组件(桌面增强交互见 Electron 文档) |
| Windows / Linux | 同一份 Electron 代码,差异仅在打包目标、签名与 Gatekeeper 等价机制 |