关于 electron-release
面向 Electron 应用开发团队的发布指南技能,涵盖生产构建、代码签名、自动更新、CI 工作流、分发方式和发布安全检查。
主要功能
- 01生产构建检查
- 02Windows、macOS 和 Linux 签名
- 03自动更新配置与测试
- 04GitHub Actions 发布工作流
- 05分发与安全检查清单
适用场景
- 01准备 Electron 生产构建
- 02配置多平台签名发布
- 03测试分阶段应用更新
- 04核对发布安全要求
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ pedronauck/ skills --skill electron-release安装后在 Claude Code 中输入/electron-release确认已加载。
附带文件references/patterns.md
详细介绍
Electron 生产构建与发布指南
此技能提供企业级最佳实践,指导如何构建、签名、发布和分发 Electron 应用,重点关注安全性、可靠性、性能和用户信任。
快速参考
- 构建配置:electron-vite 生产配置、打包优化和构建前检查。
- 代码签名:适用于 Windows(EV 证书)、macOS(Developer ID + 公证)和 Linux(GPG)的平台专属签名。
- 自动更新:electron-updater 配置、分阶段推送和更新测试。
- 发布工作流:适用于多平台构建的 GitHub Actions CI/CD 流水线。
- 分发:GitHub Releases、Cloudflare R2 或私有服务托管。
核心原则
- 安全第一:所有生产构建都必须经过代码签名;macOS 构建必须经过公证。
- 构建前验证:构建前始终运行
pnpm audit、pnpm run typecheck、pnpm run lint和pnpm run test。 - 语义化版本控制:严格遵循 SemVer(MAJOR.MINOR.PATCH)。
- 分阶段推送:先向一定比例的用户发布,再逐步扩大范围。
构建策略
构建前检查清单
每次生产构建前:
- 检查依赖项是否存在漏洞:
pnpm audit - 验证代码质量:
pnpm run typecheck && pnpm run lint - 运行测试套件:
pnpm run test && pnpm run test:e2e - 检查打包体积:
pnpm run build:analyzer - 验证环境配置
生产构建优化
- 移除所有
console.log和debugger语句 - 对未使用的依赖项进行摇树优化
- 拆分供应商代码块(React、UI 库)
- 压缩图像和资源
- 延迟加载非关键模块
- 分发时禁用源映射(如有需要,可单独提供)
- 使用生产模式构建标志
目标包体积
| 组件 | 目标 |
|---|---|
| 主进程 | < 2 MB |
| 渲染进程 | < 5 MB |
| 软件包总大小 | < 150 MB |
| 安装大小 | < 250 MB |
代码签名
Windows(需要 EV 证书)
自 2023 年 6 月起,Microsoft 要求使用扩展验证(EV)证书。
推荐:使用云端签名(DigiCert KeyLocker 或 Azure Trusted Signing)。
分发时切勿使用自签名证书。
macOS(Developer ID + 公证)
分为两个步骤:
- 代码签名:使用 Developer ID 证书
- 公证:Apple 扫描恶意软件(分发所必需)
关键要求:
- electron-builder 配置中的
hardenedRuntime: true - 有效的 entitlements.mac.plist
- APPLE_TEAM_ID、APPLE_ID 和 APPLE_APP_SPECIFIC_PASSWORD 环境变量
Linux(GPG)
使用 GPG 对发布构件签名:
gpg --detach-sign -u YOUR_KEY_ID dist/packages/*.AppImage
gpg --detach-sign -u YOUR_KEY_ID dist/packages/*.deb
自动更新实现
electron-updater 配置
在 electron-builder.yml 中配置发布提供方:
publish:
provider: github
owner: your-username
repo: your-repo
releaseType: release
分阶段推送策略
逐步推送更新以降低风险:
- 第 1 天:10% 的用户
- 第 2 天:25% 的用户
- 第 3 天:50% 的用户
- 第 4 天:100% 的用户
如果发现问题:
- 切勿再次发布相同版本(用户会忽略更新)
- 发布更高版本(例如,1.0.1 -> 1.0.2)
- 如遇严重错误,可考虑回退到之前的版本
在本地测试自动更新
使用 dev-app-update.yml 进行本地测试。发布前测试完整的更新流程。
发布工作流
手动发布检查清单
创建发布标签前:
- 合并此版本的所有 PR
- 更新
package.json中的版本号 - 更新
CHANGELOG.md - 运行完整测试套件
- 运行打包分析
- 在本地测试构建
- 验证应用可以启动且基本功能正常
- 测试自动更新机制
创建发布
git tag -a v1.2.3 -m "Release v1.2.3"
git push origin v1.2.3
GitHub Actions 会自动处理:
- 为 Windows、macOS 和 Linux 构建
- 代码签名
- 公证(macOS)
- 创建 GitHub Release
- 发布构件
分发选项
GitHub Releases(推荐)
- 免费且可靠
- 内置自动更新支持
- 版本管理
- 发行说明
Cloudflare R2
使用 R2 端点的 S3 兼容存储。配置环境变量:
- R2_BUCKET_NAME
- R2_ACCOUNT_ID
- R2_ACCESS_KEY_ID
- R2_SECRET_ACCESS_KEY
- UPDATE_FEED_URL
私有服务(通用 HTTP)
需要通过 HTTPS 提供 latest.yml、latest-mac.yml 和所有构件。
安全检查清单
发布前,请确认:
- 已审计依赖项(
pnpm audit) - 代码中没有硬编码的密钥
- 已验证 IPC 通道
- 已正确配置 CSP
- 已启用上下文隔离
- 已在渲染进程中禁用 Node 集成
- 已为所有窗口启用沙箱
- 已完成端到端自动更新测试
- 代码签名证书有效
- macOS 应用已公证
- 所有通信均通过 HTTPS 进行
- 日志或错误消息中没有敏感数据
故障排除
| 问题 | 解决方案 |
|---|---|
| 自动更新未触发 | 确认 latest.yml 存在,并检查 GitHub Releases 配置 |
| 代码签名失败 | 更新证书,并验证指纹 |
| Windows SmartScreen 警告 | 广泛分发,并向 Microsoft 提交文件以建立信誉 |
| macOS“无法验证开发者” | 重新公证,并检查团队 ID 和证书 |
| 应用下载体积过大 | 使用 ANALYZE=true pnpm run build 进行分析,并启用压缩 |
| 生产环境中出现空白屏幕 | 使用相对路径(base: './'),并确认构建输出 |
验证清单
完成涉及 Electron 发布的任务前:
- 预构建检查通过(审计、类型检查、Lint、测试)
- Bundle 大小在目标范围内
- 已为所有平台配置代码签名
- 已配置 macOS 公证
- 已实现并测试自动更新机制
- 已制定分阶段发布策略
- 已完成安全检查清单
- 已准备发行说明
有关详细配置示例、代码示例和 GitHub Actions 工作流,请参阅 references/patterns.md。
评论
支持 Markdown