Electron 打包Mac安装包代码签名问题解决方案Could not get code signature for running application
最近一直在做electron应用的打包,集成mac版本的自动更新时出现了问题。
Error: Could not get code signature for running application

无法获取当前应用的代码签名。
(首先声明:由于mac的签名机制,npm run dev 是肯定没有签名的,以下所述都需要在npm run build 下打正式包)
百思不得其解,试过了各种办法,研究了N遍官方文档,发现现实和书上写的还是不一样。
注意到一直是npm run build打包的时候都无法签名成功(由于无法获取开发者认证信息,跳过签名)。

最后历经九九八十一难(有点小夸张),终于找到了解决方案,下面把过程写下来,以示记录。
针对上述Mac上打包无法进行正确代码签名的问题,通过设置环境变量和使用xcode进行代码签名可以解决。
一.设置环境变量CSC_LINK
sudo vim ~/.bash_profile
在环境变量中配置

以上是官网的环境变量配置项,而其实我只配置了CSC_LINK一项,配置如下

设置好环境变量之后用命令
source ~/.bash_profile
重载变量文件,使用命令
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交流。
Electron 打包Mac安装包代码签名问题解决方案Could not get code signature for running application的更多相关文章
- cordova 安卓项目打包 release安装包
问题描述: 打包安卓项目, 如果是在项目中只是使用debug包的话, 其中的签名方式使用的都是cordova框架本身, 那么每次打包的话, 都会把之前的安装包给覆盖掉. 现在打包做出一个release ...
- VS2010下创建的VB.NET项目打包发布安装包的流程
VS2010下创建的VB.NET项目打包发布安装包的流程 参考:http://blog.csdn.net/liuyanlinglanq/article/details/8609675 关于relea ...
- winform打包发布安装包详解..
winform打包发布安装包详解.. 使用VS 自带的打包工具,制作winform安装项目 开发环境:VS 2008 Access 操作系统:Windows XP 开发语言:C# 项目名称:**管 ...
- 微信android混淆打包减少安装包大小
首先,感谢微信android团队的分享 微信中的资源混淆工具主要为了混淆资源ID长度(例如将res/drawable/welcome.png混淆为r/s/a.png),同时利用7z深度压缩,大大减少了 ...
- [No00009D]使用visual studio 2015 update3打包程序安装包的简单方法(不需要InstallShield)
注意: 该方法只适用于小型软件的打包发布: 该打包向导可以预先检查需要的运行库支持: 由于visual studio自2012后取消掉了自带的打包程序,如果有需要打包安装,需要使用一个叫用Instal ...
- vs2017打包exe安装包
1,安装扩展程序Install Projects 2,在打开的界面搜索Install,找到Install Projects 3,在要打包的项目解决方案下创建一个生成exe的项目 4,在打包项目的文件系 ...
- Windows下将程序打包为安装包(最为简易的方式)
一.准备工作:先下载一个Inno Setup编译器,这里我用到的是5.3.3中文版的. 软件介绍: Inno Setup 是一个免费的安装制作软件,小巧.简便.精美是其最大特点,支持pascal脚本, ...
- iOS打包ipa安装包的流程
应用的发布也分两种 一种是.打包成ipa上传到国内第3方软件市场,当用户的手机已经JailBreak时,双击下载的ipa文件就可以安装软件 (ipa同android的apk包一样,实质是一个压缩包) ...
- Xcode如何打包ipa安装包
http://jingyan.baidu.com/article/ceb9fb10f4dffb8cad2ba03e.html
随机推荐
- Google学术搜索镜像网站搜集
Google学术搜索镜像网站: http://scholar.glgoo.com/ https://xie.lu/ https://g.wen.lu/ http://www.gfsoso.com/sc ...
- 阿里云Centos 7.4 mssql-server
1.阿里云服务器控制台,开启1433端口(出入方向都要开).自从微软发布linux版本后,控制台常用端口下拉列表也增加了1433. 2.如果你没配置阿里云yum源,可参照配置一下.http://www ...
- metasploit魔鬼训练营 (安全漏洞生命周期)
1,前期 渗透测试工程师在挖掘0day的出来的 2,前中期 在一个密封的团体里,互相交流,利用漏洞带来的价值和,金钱 3,中期 安全漏洞被披露!!黑客们快速掌握该漏洞 4,中后期 漏洞被制作成更为简单 ...
- JS原型、原型链深入理解
原型是JavaScript中一个比较难理解的概念,原型相关的属性也比较多,对象有”prototype”属性,函数对象有”prototype”属性,原型对象有”constructor”属性. 一.初识原 ...
- js面向对象学习笔记(一):创建空对象,理解this指向
var obj = new Object();//创建一个空对象 obj.name = '小王';//属性 obj.sayName = function () { //对象方法 对象最重要的是this ...
- hbmy周赛1--D
D - Toy Cars Time Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Submi ...
- thinkphp5.0 文章详情页 上一篇 下一篇
// 上一篇下一篇(同一个分类下,先确定该分类的pid) public function frontAfter() { $param=$this->param; $front=Db::name( ...
- 织梦dede在首页调用留言本
织梦dedecms在首页调用留言本 . {dede:loop table=dede_guestbook sort=dtime row=10 titlelen=36 typeid=40 if=ische ...
- windows下安装redis3.2.100单机和集群详解
下载redis 下载地址:https://github.com/MicrosoftArchive/redis/releases 我下载的是3.2.100版本的Redis-x64-3.2.100.zip ...
- Android查缺补漏(View篇)--事件分发机制源码分析
在上一篇博文中分析了事件分发的流程及规则,本篇会从源码的角度更进一步理解事件分发机制的原理,如果对事件分发规则还不太清楚的童鞋,建议先看一下上一篇博文 <Android查缺补漏(View篇)-- ...