electron三实现打包自动更新

6次阅读

共计 1403 个字符,预计需要花费 4 分钟才能阅读完成。

公司有个内部桌面软件是基于 electron vue 写的,前几天负责开发这个客户端的人离职,我就成了临时接档优化的人。作为写 vue 但第一次接触 electron 的人,花了几天时间浏览了一下 electron、electron vue 官方文档、客户端代码的整体架构,即便如此,在优化过程中还是遇到了很多麻烦,项目结束后,特此做了一下总结。

功能测试通过后,开始打包发布,就开始了漫漫填坑之路。

electron 打包一般可以通过 electron-packager 或者 electron-builder 两种方式实现。我选择了 electron-builder 打包,在官方文档上表示 electron-builder:

A complete solution to package and build a ready for distribution Electron, Proton Native app for macOS, Windows and Linux with“auto update”support out of the box.
(打包构建适用于多种平台,并且支持自动更新)

以下是我其中一部分的配置:

"scripts": {
    "build": "node .electron-vue/build.js && electron-builder build",
    "build:win": "node .electron-vue/build.js && electron-builder build --windows nsis:x64"
}
"mac": {
    "icon": "build/icons/icon.icns",
    "target": ["dmg"]
},    
"win": {
    "icon": "build/icons/icon.ico",
    "target": [
        {
            "target": "nsis",
            "arch": ["x64"]
        }
     ]
},

(1)npm run build 进行 mac 系统环境打包后,报了一个错:

然后我修改了 mac 的配置:

"mac": {        
    "icon": "build/icons/icon.icns",
    "target": [
        "dmg",
        "zip"
    ]
},

再把打包好后的 dmg、zip 与 latest-mac.yml 文件放在发布路径下,竟然就不报该错误了。虽然我不是很理解为什么 mac 系统需要 zip  file 而打包 windows 系统环境发布文件时候却没有报该错误。

(2)Could not get code signature for running application:
将新版本的安装包放到发布路径下后,老版本的软件弹出“发现新版本,是否需要更新”的弹框提示,当我点更新后,又报了一个错误:

提示需要代码签名,网上有一个如何打包写入代码签名的方法:
sudo vim ~/.bash_profile
写入证书的位置
export CSC_LINK=~/work/development.p12 
刷新一下 env
source ~/.bash_profile
可以 env 看一下是否写入成功

当然这个操作成功的重点在于你钥匙串中有开发者证书,关于如何把 Apple ID 账号里的证书关联到钥匙串里,这里就不多做赘述了。

没有代码签名打包时:

有代码签名打包时:

正文完
 0