mcpField
E
electron-release

electron-release

github.com/pedronauck云与 DevOps644263 次安装1 周前更新
代码仓库

关于 electron-release

面向 Electron 应用开发团队的发布指南技能,涵盖生产构建、代码签名、自动更新、CI 工作流、分发方式和发布安全检查。

主要功能

  1. 01生产构建检查
  2. 02Windows、macOS 和 Linux 签名
  3. 03自动更新配置与测试
  4. 04GitHub Actions 发布工作流
  5. 05分发与安全检查清单

适用场景

  1. 01准备 Electron 生产构建
  2. 02配置多平台签名发布
  3. 03测试分阶段应用更新
  4. 04核对发布安全要求

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/pedronauck/skills --skill electron-release

安装后在 Claude Code 中输入/electron-release确认已加载。

附带文件references/patterns.md

详细介绍

Electron 生产构建与发布指南

此技能提供企业级最佳实践,指导如何构建、签名、发布和分发 Electron 应用,重点关注安全性、可靠性、性能和用户信任。

快速参考

  1. 构建配置:electron-vite 生产配置、打包优化和构建前检查。
  2. 代码签名:适用于 Windows(EV 证书)、macOS(Developer ID + 公证)和 Linux(GPG)的平台专属签名。
  3. 自动更新:electron-updater 配置、分阶段推送和更新测试。
  4. 发布工作流:适用于多平台构建的 GitHub Actions CI/CD 流水线。
  5. 分发:GitHub Releases、Cloudflare R2 或私有服务托管。

核心原则

  • 安全第一:所有生产构建都必须经过代码签名;macOS 构建必须经过公证。
  • 构建前验证:构建前始终运行 pnpm audit、pnpm run typecheck、pnpm run lint 和 pnpm run test。
  • 语义化版本控制:严格遵循 SemVer(MAJOR.MINOR.PATCH)。
  • 分阶段推送:先向一定比例的用户发布,再逐步扩大范围。

构建策略

构建前检查清单

每次生产构建前:

  1. 检查依赖项是否存在漏洞:pnpm audit
  2. 验证代码质量:pnpm run typecheck && pnpm run lint
  3. 运行测试套件:pnpm run test && pnpm run test:e2e
  4. 检查打包体积:pnpm run build:analyzer
  5. 验证环境配置
生产构建优化
  • 移除所有 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 + 公证)

分为两个步骤:

  1. 代码签名:使用 Developer ID 证书
  2. 公证: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 会自动处理:

  1. 为 Windows、macOS 和 Linux 构建
  2. 代码签名
  3. 公证(macOS)
  4. 创建 GitHub Release
  5. 发布构件

分发选项

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