SuperAPI AI 工具集

desktop-packaging

部署与运维

查看项目

更新于 10-16 08:02

技能介绍

用途:把可用的 Electron 或 Tauri 应用发布到 macOS、Windows、Linux 三个平台,并处理签名、公证、自动更新与 OAuth 深链。完整签名命令与配置见 REFERENCE.md。

工具选择:Electron Forge 集成度高,推荐用于新 Electron 项目;electron-builder 配置面更大、目标格式更灵活;Tauri 使用 tauri build,体积约 5–10 MB,而 Electron 约 120 MB,但需要 Rust 工具链。追求包体积优先 Tauri,已有 Node 代码库迁移成本高时选 Electron。

签名与公证:macOS 流程为 codesign → xcrun notarytool submit → xcrun stapler staple,需启用 hardened runtime,10.15+ 会阻止未签名应用。Windows 用 signtool 并加 RFC 3161 时间戳;EV 证书可避开 SmartScreen,OV 需约 30 天积累信誉。Linux 可选 AppImage(覆盖面最广)、deb、RPM、Flatpak(Flathub,沙箱化)。

自动更新:Electron 用 electron-updater,配合发布服务器或 S3 上的 latest.yml,增量更新可减小体积;Tauri 在 tauri.conf.json 配置 updater.endpoints,并用独立的 Ed25519 密钥签名包。均需通过 HTTPS 提供,并在应用前校验签名。

OAuth 深链:注册 myapp:// 让系统把 OAuth 回调路由到应用。macOS 在 Info.plist 配置 CFBundleURLTypes;Windows 使用注册表键 HKEY_CLASSES_ROOT\myapp;Linux 用带 MimeType=x-scheme-handler/myapp 的 .desktop 文件。Electron 调用 app.setAsDefaultProtocolClient('myapp'),Tauri 设置 allowlist.protocol.open = true。

CI 流水线:push 到 main 触发未签名构建与冒烟测试;打 tag vX.Y.Z 后按平台签名打包并上传产物;GitHub Release 附加产物,更新服务器检测新版本。使用 macOS、Windows、Ubuntu 运行器的矩阵构建。

限制与注意:切勿提交签名证书或 PFX 文件,应使用 CI 密钥管理;发布前务必在干净系统上测试打包后的二进制而非开发模式;固定 Electron 版本,补丁升级可能改变 Chromium API;每次发布前用 webpack-bundle-analyzer、rollup-plugin-visualizer 审计包体积。