- Published on
Electron 应用打包、签名和更新指南
- Authors
- Name
本指南将帮助你完成 Electron 应用的打包、签名和更新过程,确保你的应用能够安全地分发给用户并保持最新状态。
1. 打包
打包是将你的 Electron 应用转换为可分发的格式的过程。
使用 electron-builder
electron-builder 是一个功能强大的打包工具。
安装
npm install electron-builder --save-dev
配置
在 package.json 中添加配置:
{
"build": {
"appId": "com.yourcompany.yourappname",
"productName": "Your App Name",
"mac": {
"category": "public.app-category.utilities"
},
"win": {
"target": ["nsis", "msi"]
},
"linux": {
"target": ["deb", "rpm", "AppImage"]
}
}
}
运行打包命令
npx electron-builder
2. 代码签名
代码签名可以证明你的应用未被篡改,并提高用户信任度。
macOS 代码签名
- 获取 Apple Developer ID 证书
- 在
package.json中配置签名:
{
"build": {
"mac": {
"identity": "Developer ID Application: Your Name (TEAM_ID)"
}
}
}
Windows 代码签名
- 获取 Windows 代码签名证书
- 在
package.json中配置签名:
{
"build": {
"win": {
"certificateFile": "path/to/certificate.pfx",
"certificatePassword": "your-password"
}
}
}
3. 自动更新
实现自动更新可以确保用户始终使用最新版本的应用。
使用 electron-updater
- 安装 electron-updater:
npm install electron-updater
- 在主进程中实现更新逻辑:
const { app, autoUpdater } = require('electron');
const { AppUpdater } = require('electron-updater');
app.on('ready', () => {
const updater = new AppUpdater();
updater.checkForUpdatesAndNotify();
});
- 配置更新服务器:
在 package.json 中添加:
{
"build": {
"publish": [{
"provider": "generic",
"url": "https://your-update-server.com/updates"
}]
}
}
4. 发布流程
更新版本号:
npm version patch # 或 minor, 或 major构建应用:
npx electron-builder创建 GitHub Release 或上传到你的更新服务器
通知用户更新(通过 electron-updater 自动完成)
5. 最佳实践
- 版本控制:使用语义化版本控制 (Semantic Versioning)
- 更新日志:维护清晰的更新日志,让用户了解每次更新的内容
- 增量更新:考虑实现增量更新以减少更新包的大小
- 回滚机制:实现更新回滚功能,以应对更新失败的情况
- 测试:在发布前全面测试打包后的应用
- 自动化:使用 CI/CD 工具自动化打包和发布流程
6. 常见问题解决
- 签名失败:确保证书有效且密码正确
- 更新失败:检查更新服务器配置和网络连接
- 打包错误:查看 electron-builder 的输出日志,解决依赖问题
通过遵循这个指南,你应该能够顺利完成 Electron 应用的打包、签名和更新过程。记住,保持应用更新不仅可以为用户提供新功能,还能及时修复安全漏洞,对应用的长期成功至关重要。