首页/文章/electron

【Electron】vue+electron代码签名(mac篇)

2024-07-23
10464 分钟
...

本文已参与「新人创作礼」活动, 一起开启掘金创作之路。

本篇主要介绍electron应用的mac版本如何实现代码签名以及公证,因为没得代码签名,我们是没有办法进行更新的。

前置条件,你需要有一个开发者账号。不然咱们就没办法往下进行了(默认你有哈)。咱继续往下说

1.制作CSR文件

什么是CSR文件呢?

CSR是英文Certificate Signing Request的缩写,即证书签名请求。是证书申请者在申请数字证书时由CSP(加密服务提供者)在生成私钥的同时也生成证书请求文件,证书申请者只要把CSR文件提交给证书颁发机构后,证书颁发机构使用其根证书私钥签名就生成了证书公钥文件,也就是颁发给用户的证书。

这里简单理解就是我们接下做签名证书的基础。

  1. 首先我们通过搜索找到并打开钥匙串访问应用

  1. 然后点击左上角菜单,钥匙串访问->证书助手->从证书颁发机构请求证书

  1. 之后就会出现如下弹窗,输入用户电子邮箱地址(自己的常用邮箱即可),选择存储到磁盘,然后点击继续

  1. 之后就会生成一个CSR的文件(全称CertificateSigningRequest.certSigningRequest),我们先将他放在桌面上,如图所示

2.生成Developer ID Application证书

这里要注意,我们的证书类型必须是Developer ID Application

  1. 进入苹果开发者网站证书页面点击进入
  2. 点击添加,进入到新建页面

  1. 选择Developer ID Application,这里再次强调Electron打包的桌面应用必须使用这个证书,然后点击继续

4.这里就需要上传咱们第一步生成的CSR文件了

  1. 上传成功之后你就可以看到自己生成证书的信息了,然后点击右上角下载

  1. 将下载好的证书,放到桌面上,之后双击证书,将会自动添加到钥匙串中

3.生成P12签名文件

  1. 我们在钥匙串访问中就找到我们的证书,如下图所示

  1. 选中、右键,选择导出证书

  1. 记好导出的位置,我们之后配置环境变量的时候要用到

  1. 导出后,生成文件如下

4.配置环境变量

让electron应用在打包时候,能找到签名文件。

打开终端

sudo vim ~/.bash_profile

开始配置变量


export CSC_LINK = /Users/jvtd/APPcertificate/certificate.p12

export CSC_KEY_PASSWORD = *******

退出编辑

:qw

重载环境变量

source ~/.bash_profile

查看环境变量

env

这样就成功了。

5.打包electron应用

根据上面介绍设置好之后,我们再去打包,就会看到如下图所示

就代表我们签名成功了。

到这里electron应用关于代码签名的两套系统我们都讲完啦。签名做好,我们的应用就可以正常的去更新了。

本篇完结! 撒花! 感谢观看! 希望能帮助到你!

如果您觉得这篇文章有帮助,请点个赞吧~

分享文章

相关文章

更多文章 →
electron2025-03-05
不依赖第三方库自己实现 Electron 的主与渲染进程的国际化功能
正文 直接贴出代码: 主进程实现 首先需要在 文件中获取当前系统的语言,然后初始化国际化相关: 文件: 文件 然后在主进程中就可以通过 来实现国际化了。 渲染进程的实现 App 在启动的时候渲染进程已经执行了国际化的初始化,所以在主进程已经保存了一份当前语言的 信息,所以渲染进程就不需要进程这一步,直接从主进程获取即可。 主进程进程添加一个 事件,供渲染进程获取国际化相关数据: 首先我们要在 preload 中提前将国际化相关的信息写入...
学习
electron2025-03-05
应用多开,限制只启动一个应用,防止多个实例
通过app.requestSingleInstanceLock来控制应用的多开,返回值为boolean。 此方法的返回值表示你的应用程序实例是否成功取得了锁。如果它取得锁失败,你可以假设另一个应用实例已经取得了锁并且仍旧在运行,并立即退出。 即:如果当前进程是应用程序的主要实例,则此方法返回true,同时你的应用会继续运行。如果当它返回false,如果你的程序没有取得锁,它应该立刻退出,并且将参数发送给那个已经取到锁的进程。 在macO...
学习
electron2024-09-23
Electron实现文件缓存背景
背景 基于Electron研发的一款IM企业通信桌面端应用,会存在非常多文件、图片、视频类型回话消息。在Electron应用(桌面客户端软件)中,快速加载并显示图片是提升用户体验的关键。然而,传统的图片加载方式往往存在加载速度慢、资源占用高等问题,影响了用户的使用体验。 解决的问题 1. 支持自定义配置存储的磁盘位置 2. 支持长期存储 3. 支持自定义存储大小 4. 支持自定义存储类型(如图片、视频、文件,或者更细致化到MIME) 5...
学习
electron2024-09-23
我的 Electron 客户端也可以全量和增量更新了
前言 本文主要介绍 客户端应用的自动更新,包括全量和增量这两种方式。 全量更新: 运行新的安装包,安装目录所有资源覆盖式更新。 增量更新: 只更新修改的部分,通常是渲染进程和主进程文件。 本文并没有拿真实项目来举例子,而是起一个 新的项目 从 0 到 1 来实现自动更新。 如果已有的项目需要支持该功能,借鉴本文的主要步骤即可。 前置说明: 1. 由于业务场景的限制,本文介绍的更新仅支持 操作系统,其余操作系统未作兼容处理。 2. 更新流...
学习
electron2024-09-20
我的 Electron 客户端被第三方页面入侵了
问题描述 公司有个内部项目是用 来开发的,有个功能需要像浏览器一样加载第三方站点。 本来一切安好,但是某天打开某个站点的链接,导致 整个客户端直接变成了该站点的页面 。 这一看就是该站点做了特殊的处理,经排查网页源码后,果然发现了有这么一句代码。 翻译一下就是:如果当前窗口不是顶级窗口的话,将当前窗口设置为顶级窗口。 奇怪的是两者不是 跨域 了吗,为什么 还可以影响顶级窗口。 先说一下我当时的一些解决办法: 1. 用 替换 2. 给 添...
学习
electron2024-09-13
Electron+WebRTC实现局域网内的远程控制软件
我的工位上有一台笔记本(windows),一个显示器,一台服务器(linux)。显示器同时连接笔记本和服务器,当需要用到服务器的时候:1.使用todesk等软件进行连接;2.直接把显示器切换到服务器桌面,然后给服务器插上鼠标键盘。在这种场景下,屏幕画面的传输对我来说并不是必要的,这种场景下能不能用一套键鼠控制两个电脑呢?边做边学便有了这个小工具。记录下来,其中遇到的问题和解决方案。 通过electron + Vue + primevue...
学习

评论

请登录后发表评论

去登录
加载评论中...

目录