HoRain云--Electron 打包与分发 📅 2026/7/15 12:35:28 Electron 应用开发完成后需要将应用打包为桌面可执行文件并发布给用户。打包与分发流程涉及工具选择、配置、签名和更新策略等多个环节。打包工具介绍electron-builder高度自动化支持 Windows、macOS、Linux支持自动更新功能配置简单适合生产环境可生成.exe、.dmg、.AppImage等格式electron-packager官方推荐打包工具轻量只负责生成可执行文件不带自动更新配置简单但需要结合其他工具处理安装包和签名electron-forge集成打包、模板、自动更新和发布流程开箱即用适合新手快速启动项目内置 Webpack / ESBuild 构建支持工具对比与选择工具特点优势适用场景electron-builder自动化高、跨平台、支持更新配置简单、适合生产复杂应用发布electron-packager轻量、官方支持灵活组合其他工具简单应用打包electron-forge集成开发工具、快速启动开箱即用、内置构建初学者或快速原型配置打包参数package.json 配置build: { appId: com.example.myapp, productName: MyElectronApp, directories: { output: dist }, files: [**/*], extraResources: [assets/], mac: { category: public.app-category.utilities }, win: { target: nsis, icon: build/icon.ico }, linux: { target: [AppImage, deb], icon: build/icon.png } }平台特定配置Windows安装包类型NSIS、Squirrel、图标.icomacOS应用类别、签名、.icns图标Linux目标格式AppImage、deb、rpm、图标 PNG图标和资源文件图标尺寸和格式需满足平台要求额外资源可通过extraResources或extraFiles添加多平台打包Windows 打包electron-builder --win可生成.exe或.msi安装文件支持 NSIS 安装向导、静默安装macOS 打包electron-builder --mac可生成.dmg或.pkg配合公证Notarization可通过 macOS GatekeeperLinux 打包electron-builder --linux常用格式AppImage、deb、rpm适合不同发行版的桌面分发交叉编译Electron-builder 支持跨平台构建但 macOS 应用必须在 macOS 上签名Windows / Linux 可通过 Linux 或 Windows 构建虚拟机实现交叉打包代码签名Windows 代码签名使用数字证书.pfx签名.exe或.msi示例electron-builder --win --csc-link path/to/certificate.pfx --csc-key-password yourpassword提升用户信任避免 SmartScreen 阻拦macOS 公证NotarizationApple 官方要求应用公证通过 Gatekeeper需要 Apple Developer 账号构建示例electron-builder --mac --publish never使用notarizeAPI 上传应用进行自动公证证书申请与管理Windows购买 EV 或标准代码签名证书macOSApple Developer 账号申请开发者证书证书需安全存储避免泄露自动更新electron-updater 使用与 electron-builder 配合支持差分更新安装electron-updaternpm install electron-updater主进程示例const { autoUpdater } require(electron-updater) autoUpdater.on(update-available, () console.log(发现新版本)) autoUpdater.on(update-downloaded, () autoUpdater.quitAndInstall()) autoUpdater.checkForUpdates()更新服务器搭建可使用 GitHub Releases、私有服务器或 CDN提供 JSON 文件描述最新版本信息差分更新仅下载变更文件减少带宽消耗electron-updater 内置支持 NSIS / Squirrel / AppImage 差分更新更新策略自动检查更新启动时或定时手动触发更新弹窗提示用户是否立即更新或延迟更新小结Electron 打包与分发核心流程选择工具electron-builder、electron-packager、electron-forge配置参数package.json 中定义平台、图标、资源多平台打包Windows、macOS、Linux代码签名确保应用可信避免安全提示自动更新提升用户体验支持差分更新遵循最佳实践可以让 Electron 应用快速安全地分发给用户同时便于后续迭代和更新。