electron 应用自解压打包及安全签名

electron 应用打包后,需要使用 WinRar 生成独立的 exe 运行文件,而且运行时,还要解决 360 安全警告问题,进行应用签名,可以申请 Microsoft 的免费签名证书

1. WinRar 自解压打包

之前文章electron 打包 react 项目详解中介绍了 electron-builder 可以将 react 应用打包成桌面端应用。

可以打包成 demo-setup.exe 安装文件,需要安装才能使用;

也可以打包成免安装文件夹 win-ia32-unpacked/demo.exe,里面有直接执行的 exe 应用文件

但是项目上要求只能有一个 exe 文件,可以直接运行,而且是放在 U 盘中自启动运行的,独立的 exe 程序。。。。。。我只能无语了

解决办法:使用 windows 的 WinRar 工具,进行自解压文件配置压缩处理。

  1. 右键选中 win-ia32-unpacked 文件夹,选择添加到压缩文件RAR

  2. 常规配置:选择 创建自解压格式压缩文件,压缩方式建议选存储

压缩文件名就会从 win-ia32-unpacked.rar 变成 win-ia32-unpacked.exe,满足项目要求了

当然自己也可以随意更改名称,保证后缀名就行

  1. 高级-自解压选项配置,配置自解压格式

  2. 高级-自解压选项-设置配置:"解压后运行"的文件win-ia32-unpacked\demo.exe

注意:文件名一定要匹配 目录文件夹+里面的运行exe文件名 错了是没法启动electron应用的。

  1. 高级-自解压选项-模式配置: 选择解包到临时文件夹,下方选全部隐藏

注意:此处一定要选择"全部隐藏",不然运行时,会出现一个弹框,影响执行效果

  1. 高级-自解压选项-更新配置:选择"解压并替换所有文件"

注意:这一步会导致自解压打包后的文件,运行时会有一段空白时间,因为要覆盖替换。这个过程是必须的,目前没办法避免,没法做到立即执行。

如果掘友们有办法的话,欢迎评论区指导!!!!!!!!,求解决办法!!!

  1. 高级-自解压选项-文本和图标配置:设置压缩后的 icon,需要.ico图片

这个也是项目必须配置的,不然会用默认的图标

2. electron 应用签名

上面打包的 electron 应用运行时,会被 360 拦截,提示警告,这是360的一个误报,有些坑呀。。。

只能说360权限太高了,而使用360的人还不少

警告信息如下:

发起来源为 C:\\windows\explorer.exe

U 盘中有风险程序正准备运行,建议阻止

用户体验肯定不好呀,插个 U 盘提示这个,正常人都害怕呀,就给禁止了!!!

要解决这个问题,你可以尝试以下步骤:

  1. 将 Electron 应用添加到 360 的信任列表中

    在设置或管理界面中寻找"信任的应用程序"或"白名单",然后将 Electron 应用的路径添加进去。

  2. 找 360 厂商反馈呀,让他们协助解决。

  3. 在代码层面,可以尝试使用数字签名来解决这个问题。

    数字签名可以帮助验证软件的真实性,并减少杀毒软件误报的可能性。

electron打包数字签名的具体配置,可以查看如下官网:

数字证书申请有如下方式,我选的第二种,通过率更高一点吧:

(1)使用 Let's Encrypt 免费证书

安装 Certbot: 访问 certbot.eff.org/instruction...,按照流程生成证书。

(2)申请 Microsoft 的免费签名证书

登录到 Windows 开发人员中心,创建开发者账户,然后"创建签名证书",按照页面指引,生成用于签名应用程序的证书

注意:注册 Windows 开发者账号需要支付一次性的费用

相关推荐
前端大卫20 分钟前
Vue3 + Element-Plus 自定义虚拟表格滚动实现方案【附源码】
前端
却尘36 分钟前
Next.js 请求最佳实践 - vercel 2026一月发布指南
前端·react.js·next.js
ccnocare37 分钟前
浅浅看一下设计模式
前端
Lee川40 分钟前
🎬 从标签到屏幕:揭秘现代网页构建与适配之道
前端·面试
Ticnix1 小时前
ECharts初始化、销毁、resize 适配组件封装(含完整封装代码)
前端·echarts
纯爱掌门人1 小时前
终焉轮回里,藏着 AI 与人类的答案
前端·人工智能·aigc
twl1 小时前
OpenClaw 深度技术解析
前端
崔庆才丨静觅1 小时前
比官方便宜一半以上!Grok API 申请及使用
前端
星光不问赶路人1 小时前
vue3使用jsx语法详解
前端·vue.js
天蓝色的鱼鱼1 小时前
shadcn/ui,给你一个真正可控的UI组件库
前端