macOS IMLib 导入
本页说明 macOS 端 IMLib 的依赖、制品与集成要求。包名 @ni-paas-im/electron(本地包路径 sdk/electron;当前未发布到 npm)。主进程 @ni-paas-im/electron/main 提供 initService(IMLib 客户端 + 本地 SQLite + 诊断)与 @ni-paas-im/electron/main/ipc 的 registerIpc;preload 由 @ni-paas-im/electron/preload 提供,向页面暴露 window.niPaasIMBridge(imlib.* / localDb.* / onEvent / onState)。
安装 / 依赖
npm
# SDK 当前未发布到 npm(@0.1.0 远程命令 404),从仓库本地安装:
npm install @ni-paas-im/electron@file:../sdk/electron
# 主进程入口:@ni-paas-im/electron/main(initService)
# IPC 注册:@ni-paas-im/electron/main/ipc(registerIpc)
# preload 桥:@ni-paas-im/electron/preload(window.niPaasIMBridge)
# 类型声明:@ni-paas-im/electron/types/index.d.ts环境要求
| 项 | 要求 |
|---|---|
| 运行时 | macOS 11 Big Sur+(x64 / Apple Silicon arm64),Electron 35(Node.js 22) |
| 进程安全 | contextIsolation: true、nodeIntegration: false、sandbox: false(ESM preload 需要非沙箱;页面仍无 Node 访问) |
| 本地库 | 主进程 SQLite:dbPath 是目录,库文件为 <dbPath>/im-electron/<appkey>/<userId>.db;renderer 只经 IPC 访问 |
| 构建 | electron-builder 打 .app + .dmg;签名支持 ad-hoc 与 Developer ID + 公证 |
| 原生依赖 | 不使用 .node 原生插件,x64 / arm64 免 ABI 重编译 |
包内容
| 制品 | 路径 / 名称 | 说明 |
|---|---|---|
| IMLib 包 / 模块 | @ni-paas-im/electron | 核心通信库(连接、消息、会话、群组、好友、聊天室、上传) |
| IMLib 源码 / 制品 | src/main | 随发行包提供的源码 / 制品(内联调可源码集成) |
| IMKit 制品 | src/renderer | 可选 UI 组件层,只依赖 IMLib 公开接口 |
| 类型声明 | types/index.d.ts | TypeScript / JS 类型声明,编辑器可直接跳转 |
| 契约声明面 | types/index.d.ts | 供零漂移校验的契约声明面 |
版本与兼容
- 契约版本:IDL v1.0.0(frozen,冻结修订 35)。
- v1.x 采用 additive-only:仅新增可选字段、枚举值、接口与错误码,不破坏既有语义。
- 升级时先对照「更新日志」确认新增面,再回归连接、消息、会话与群组主链路。
- 当前平台绑定状态:
ga。