最近一直在做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的更多相关文章

  1. cordova 安卓项目打包 release安装包

    问题描述: 打包安卓项目, 如果是在项目中只是使用debug包的话, 其中的签名方式使用的都是cordova框架本身, 那么每次打包的话, 都会把之前的安装包给覆盖掉. 现在打包做出一个release ...

  2. VS2010下创建的VB.NET项目打包发布安装包的流程

    VS2010下创建的VB.NET项目打包发布安装包的流程 参考:http://blog.csdn.net/liuyanlinglanq/article/details/8609675  关于relea ...

  3. winform打包发布安装包详解..

    winform打包发布安装包详解..   使用VS 自带的打包工具,制作winform安装项目 开发环境:VS 2008 Access 操作系统:Windows XP 开发语言:C# 项目名称:**管 ...

  4. 微信android混淆打包减少安装包大小

    首先,感谢微信android团队的分享 微信中的资源混淆工具主要为了混淆资源ID长度(例如将res/drawable/welcome.png混淆为r/s/a.png),同时利用7z深度压缩,大大减少了 ...

  5. [No00009D]使用visual studio 2015 update3打包程序安装包的简单方法(不需要InstallShield)

    注意: 该方法只适用于小型软件的打包发布: 该打包向导可以预先检查需要的运行库支持: 由于visual studio自2012后取消掉了自带的打包程序,如果有需要打包安装,需要使用一个叫用Instal ...

  6. vs2017打包exe安装包

    1,安装扩展程序Install Projects 2,在打开的界面搜索Install,找到Install Projects 3,在要打包的项目解决方案下创建一个生成exe的项目 4,在打包项目的文件系 ...

  7. Windows下将程序打包为安装包(最为简易的方式)

    一.准备工作:先下载一个Inno Setup编译器,这里我用到的是5.3.3中文版的. 软件介绍: Inno Setup 是一个免费的安装制作软件,小巧.简便.精美是其最大特点,支持pascal脚本, ...

  8. iOS打包ipa安装包的流程

    应用的发布也分两种 一种是.打包成ipa上传到国内第3方软件市场,当用户的手机已经JailBreak时,双击下载的ipa文件就可以安装软件 (ipa同android的apk包一样,实质是一个压缩包) ...

  9. Xcode如何打包ipa安装包

    http://jingyan.baidu.com/article/ceb9fb10f4dffb8cad2ba03e.html

随机推荐

  1. NEST 中的时间单位

    Time units 英文原文地址:Time units 与 Elasticsearch 交互,我们会遇到需要设定时间段的情况(例如:timeout 参数).为了指定时间段,我们可以使用一个表示时间的 ...

  2. 学习笔记-echarts自定义背景图片

    困扰我已久的问题就解决了. code: //使用canvas把背景添加到echarts里 var img = new Image();var canvas = document.createEleme ...

  3. bzoj 2303: [Apio2011]方格染色

    传送门 Description Sam和他的妹妹Sara有一个包含n × m个方格的表格.她们想要将其的每个方格都染成红色或蓝色.出于个人喜好,他们想要表格中每个2 × 2的方形区域都包含奇数个(1 ...

  4. HDU 2689 Sort it【树状数组】

    Sort it Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Sub ...

  5. [51nod1197]字符串的数量 V2

    用N个不同的字符(编号1 - N),组成一个字符串,有如下要求: (1) 对于编号为i的字符,如果2 * i > n,则该字符可以作为结尾字符.如果不作为结尾字符而是中间的字符,则该字符后面可以 ...

  6. [bzoj3048] [Usaco2013 Jan]Cow Lineup

    一开始一脸懵逼.. 后来才想到维护一左一右俩指针l和r..表示[l,r]这段内不同种类的数字<=k+1种. 显然最左的.合法的l随着r的增加而不减. 顺便离散化,记一下各个种类数字出现的次数就可 ...

  7. 克鲁斯卡尔(Kruskal)算法求最小生成树

    /* *Kruskal算法求MST */ #include <iostream> #include <cstdio> #include <cstring> #inc ...

  8. C#面试题整理(1)

    最近在看CLR VIA C#,发现了一些案例很适合来做面试题.特此整理: 1,System.Object里的GetType方法是否为虚函数?说出理由. 答案:不是,因为C#是一种类型安全的语言,如果覆 ...

  9. Cxf -wsdl2java 使用参数介绍

    wsdl2java -h 可以得到详细的参考文档: G:\cxf\apache-cxf-3.1.6\bin>wsdl2java -h wsdl2java -fe|-frontend <fr ...

  10. Sqoop导入导出的几个例子

    Sqoop导入导出的几个例子 http://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html#_importing_data_into_hive   no ...