macOS 环境要求

口径说明

融云公开文档不覆盖 macOS 原生 SDK 与桌面交付链(dmg / 代码签名 / 公证 / 分发 / Gatekeeper);本页为本项目按 Apple 与 Electron 官方实践补齐的接入文档。

本节列出运行与构建 macOS 桌面端所需的系统、工具链与网络条件;命令均在 macOS 终端(zsh / bash)执行。

系统与硬件​

项要求说明
macOS11 Big Sur 及以上Electron 35 的最低系统要求;12 Monterey / 13 Ventura / 14 Sonoma / 15 Sequoia 均验证可用
架构x64(Intel)与 arm64(Apple Silicon)x64 由本机(Intel Mac)实测;arm64 由 CI(macos-14)构建验证;Apple Silicon 可通过 Rosetta 运行 x64 包
CPU / 内存双核 / 8 GB 起(建议 16 GB)构建 universal 包与公证上传更吃内存
磁盘≥ 3 GB 可用空间node_modules、Electron 二进制、构建产物与 dmg 缓存
显示1280×800 起多窗口 / 分屏场景建议 1440×900 以上

工具链​

工具版本用途
Node.js22.5+构建与主进程运行时(Electron 35 内置 Node 22)
npm10+依赖安装与脚本执行
Xcode Command Line Tools15+codesign / notarytool / stapler / spctl 等命令行工具
electron35.0.1运行时(随依赖安装)
electron-builder24+打包 `.app` / `.dmg`、签名与公证编排
Developer ID 证书按需对外分发时签名;本地验证可用 ad-hoc

自检命令​

Shell
# 系统与架构
sw_vers
uname -m                 # x86_64 或 arm64

# 工具链
node -v                  # v22.x 及以上
npm -v
xcode-select -p          # /Applications/Xcode.app/Contents/Developer 或 CommandLineTools

# 签名环境(发布时需要)
security find-identity -v -p codesigning
xcrun notarytool --version
xcrun stapler --version

网络与权限​

  • 主进程需要访问 IM 服务端(WebSocket + HTTPS)与文件上传地址;企业代理环境需允许长连接。
  • 首次运行会触发 macOS 的“本地网络”权限提示(若应用访问局域网服务端);用户拒绝后需在「系统设置 → 隐私与安全性 → 本地网络」重新开启。
  • 企业内网分发或私有化部署时,若使用自签证书,需要把根证书加入钥匙串并设为信任,或在 Info.plist 中配置 ATS 例外(仅限自有域名)。
  • 构建机访问 npm registry 与 Electron 二进制镜像;CI 上可用 `ELECTRON_MIRROR` 加速。

推荐目录布局​

Text
your-desktop-app/
├── package.json          # electron / electron-builder / @ni-paas-im/electron
├── main.mjs              # 主进程:IMLib + 本地 SQLite + 窗口与 IPC
├── preload.mjs           # contextBridge 白名单
├── renderer/             # 渲染进程 UI(IMKit 组件)
└── build/
    ├── icon.icns         # 应用图标
    └── entitlements.mac.plist
Apple Silicon 与 Intel 共用一台构建机

用 `npm run dist -- --x64 --arm64` 分别产出;需要单包同时支持两种架构时加 `--universal`(构建更慢、体积约翻倍)。