资讯专栏INFORMATION COLUMN

Electron 打包Mac安装包代码签名问题解决方案

taoszu / 2801人阅读

摘要:最近一直在做应用的打包,集成版本的自动更新时出现了问题。针对上述上打包无法进行正确代码签名的问题,通过设置环境变量和使用进行代码签名可以解决。

最近一直在做electron应用的打包,集成mac版本的自动更新时出现了问题。
具体打包流程请参考:Electron 桌面应用打包(npm run build)简述(windows + mac)
Electron应用集成自动更新功能可参考:Electron应用使用electron-builder配合electron-updater实现自动更新

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交流。

注意:请支持原创,本文谢绝转载,确有需要可链接到本文。本文链接地址:https://segmentfault.com/a/11...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/92588.html

相关文章

  • Electron 打造 Win/Mac 应用,从「代码」到可下载的「安装」,可能比你想得麻烦一

    摘要:三配置环节目的一是为之后的环节初始化工作流参数,二是准备好应用文件夹内容即要打包的目标文件夹做的事解析命令行参数,初始化工作参数,填充配置文件,把配置文件和相关依赖文件导入到文件夹内合适的 首发于酷家乐前端博客,作者@摘星(segmentfault @StinsonZhao) 我们能从很多地方学习到怎么起一个 Electron 项目,有些还会介绍怎么打包或构建你的代码,但距离「真正地...

    LdhAndroid 评论0 收藏0
  • electronelectron-packager及electron-builder两种方式实

    摘要:前言本文主要介绍如何通过及两种方式,将已有的应用打包成格式和可执行文件。导致了在打包的过程中非常慢。由于是初次接触,如读者在文中发现错误,请及时指正。 前言 showImg(https://segmentfault.com/img/bV6zNn?w=1319&h=594); 本文主要介绍如何通过electron-packager及electron-builder两种方式,将已有的ele...

    KaltZK 评论0 收藏0
  • electron开发过程中遇到的一些坑

    摘要:导致下载流程受阻问题中使用到子进程的时候,是把子进程当作一个外部依赖来做的,打包后并不会将子进程的代码打进到包中,需要额外进行配置。子进程中用的第三方包都需要在中进行配置。 在公司开发的下载器过程中,遇到的一些坑点 1.electron中弹窗的确认取消以及系统自带的叉号之间的关系 场景:在用户退出app时,需要提示用户是否确认退出,此时弹窗出现,如果点击确认就继续退出,执行回调,否则的...

    FingerLiu 评论0 收藏0
  • electron + vue 实践项目

    摘要:在开发环境下,我是将获取的字体文件远程地址写进,这样解决了问题。 github地址 原文地址: http://wushaobin.top/2017/08/... 本地安装环境准备 安装node: * https://nodejs.org/en/download/ 配置webpack: npm install -g webpack(sudo权限) windows配置cnpm: ...

    makeFoxPlay 评论0 收藏0
  • 手把手教你把前端代码成msi和exe文件

    摘要:本文主要介绍应用如何打包成和文件。添加监听并生成快捷方式安装卸载运行步骤和重新打包此时,再次运行进行安装,就会自动再桌面和开始菜单生成快捷方式了。 本文主要介绍Electron应用如何打包成msi和exe文件。由于介绍Electron打包成msi和exe的文章很少,官方的文档也一笔带过,在研究的过程中踩了很多坑,所以写下此文,给其他人一个参考。关于Electron基础知识的文章,官方文...

    Miracle 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<