最近一直在作electron应用的打包,集成mac版本的自动更新时出现了问题。
具体打包流程请参考:Electron 桌面应用打包(npm run build)简述(windows + mac)
Electron应用集成自动更新功能可参考:Electron应用使用electron-builder配合electron-updater实现自动更新npm
Error: Could not get code signature for running application
没法获取当前应用的代码签名。vim
(首先声明:因为mac的签名机制,npm run dev 是确定没有签名的,如下所述都须要在npm run build 下打正式包)segmentfault
百思不得其解,试过了各类办法,研究了N遍官方文档,发现现实和书上写的仍是不同。
注意到一直是npm run build打包的时候都没法签名成功(因为没法获取开发者认证信息,跳过签名)。windows
最后历经九九八十一难(有点小夸张),终于找到了解决方案,下面把过程写下来,以示记录。
针对上述Mac上打包没法进行正确代码签名的问题,经过设置环境变量和使用xcode进行代码签名能够解决。
一.设置环境变量CSC_LINKxcode
sudo vim ~/.bash_profile
在环境变量中配置bash
以上是官网的环境变量配置项,而其实我只配置了CSC_LINK一项,配置以下服务器
设置好环境变量以后用命令app
source ~/.bash_profile
重载变量文件,使用命令electron
env
查看环境变量配置结果学习
注意:若是配置完成以后,屡次重载都发现环境变量不能正确更新到列表中,这时应该先退出终端,而后再登陆终端查看环境变量便可看到更新完成。
二.使用X-code进行mac版本上代码签名:
1.打开xcode主界面
2.Xcode==>Preferences…
3.Accounts==>Apple IDs==>Manage Certificates…
若是没有登陆的话,先登陆Apple ID,注意必定要登陆开发者帐号。登陆成功后再进行Manage Certificates;
4.添加“+”Developer ID Application,注意必定要添加Developer ID Application到钥匙串中,不要选错了。
5.成功添加到钥匙串个人证书中
通过以上的步骤能够成功添加一个证书到钥匙串中的个人证书中。
至此使用Xcode成功添加代码签名到本地钥匙串中的个人证书中。
三.成功打包通过代码签名的安装包。
打包正在签名状态:
正确签名以后,打包成功!
注意:经过钥匙串的方式进行代码签名,进而实现自动更新以后,appId应一致,打包应用后不能随意更改新的appId字段。不然会被认为是两个不一样的应用而没法更新。
四.Mac包正确升级(自动更新)示例
注意:先把正确签名打包后的高版本MAC安装文件上传服务器,而后本地再打包一个低版本Mac包文件.dmg,安装低版本MAC包,触发自动更新,便可完成升级,自动安装高版本MAC包到本地。
若是这篇文章对你的工做或者学习有帮助的话,请收藏或点个赞。若是对其中有什么不明白的或者报错,能够留言或者加QQ群140455228交流。
注意:请支持原创,本文谢绝转载,确有须要可连接到本文。本文连接地址:https://segmentfault.com/a/11...