公司有个内部桌面软件是基于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账号里的证书关联到钥匙串里,这里就不多做赘述了。

没有代码签名打包时:

有代码签名打包时: