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

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

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系统环境打包后,报了一个错:
6842E612-8C50-4219-8624-BB71E04DF4A9.png
然后我修改了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:
将新版本的安装包放到发布路径下后,老版本的软件弹出“发现新版本,是否需要更新”的弹框提示,当我点更新后,又报了一个错误:
D9DC45C9-BA6C-45CA-A2DF-B7F9B751C8C1.png

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

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

没有代码签名打包时:
3B625A13-B7A3-4923-AC62-5517AD35D788.png
有代码签名打包时:
20B77893-DD66-4427-8030-B1B7A4489F11.png


xxjiayy
12 声望2 粉丝

世界那么大,有机会要多去看看