electron-mac应用-代码签名及公证(教科书式操作-亲测有效)


electron-MAC版应用需要做代码签名才可以在mac上被信任打开,自macOS 10.15及以上系统应用程序必须经过签名以及公证,否则默认情况下无法直接运行,会弹出警告。

代码签名

1、Apple开发者账号

a.)、打开钥匙串 => 点击左上方状态栏钥匙串访问 => 证书助理 => 从证书颁发机构请求证书
注意:
第一栏填可用的电子邮箱 例如:XXX@gmail.com
第二栏输入有自己标识的名称(方便自己后期在钥匙串中快速辨识并找到)
第三栏不选择(不使用CA电子邮件地址)
第四栏选择:存储到磁盘

在这里插入图片描述
看到这个提示:表示成功
在这里插入图片描述
b.)、
打开苹果开发者网站 => 点击上方Account => Certificates,Identifiers & Profiles
Certificates+ => 选择Developer ID Application => Continue => 点击下载:Download Your Certificate(点击右侧Download => 下载到本地一个.cer文件 双击安装到本机电脑证书)

注意:
然后开始选择CSR文件,就是第一步导出的文件。
在这里插入图片描述
导入完毕之后,可以看到自己生成证书的信息。黄色箭头指向的信息为提示10.14.5以及以上系统需要去公证,公证的步骤下面说,最后点击下载即可:
在这里插入图片描述
下载下来的.cer文件双击自动添加至钥匙串中,在钥匙串中进行访问。
在这里插入图片描述
右击查看详情,设置信任为始终信任:
在这里插入图片描述
证书在钥匙串中已设置完毕,导出为p12文件:
在这里插入图片描述
导出路径牢记,后边设置环境变量会用到:
在这里插入图片描述

生成Identifiers 获取BundleId
Identifiers+ => 选择App IDs => Continue(Select a type选择app) => continue
注意:
在这里插入图片描述
Devices+ => continue
注意:cloose File 不用选择
在这里插入图片描述

2、配置环境变量

不配置环境变量,mac下electron无法获取本地证书,需要打开终端或者iterm2

输入:

  1. 输入 sudo vim ~/.bash_profile
  2. 输入 export CSC_LINK = ~/desktop/zs.p12 (路径填写自己刚才保存的.p12证书绝对地址)
  3. 按 esc 键,输入 :wq (保存并退出)
  4. 输入 source ~/.bash_profile (环境变量重载)
  5. 输入 env 查看环境变量配置结果:
    在这里插入图片描述
    注意:如果多次重载发现环境变量没有更新到列表中,可以先退出终端,再重新打开终端多次尝试即可。

公证(notarize)

1、说明

背景:MacOS 10.14.5 开始,所有“新”开发人员签名的App都需要进行公证(Notarization),否则将触发苹果的Gatekeeper,阻止用户安装你的App。这意味着,除了对 App 进行签名,还需要对其进行公证。如果你尝试启动应在 MacOS 10.14.5 上未经公证的App,则会看到以下的错误消息:
mac为了保证安全对除 App Store 以外的应用进行公证,以确保没有恶意代码。
如图所示:
在这里插入图片描述
官方文档给的方法是用xcode提交到苹果的公证处进行公证,但是这方法对于electron来说是不合理的&

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
以下是使用Electron Builder和Electron Updater实现自动更新的示例代码: 首先,你需要安装electron-builder和electron-updater: ```bash npm install electron-builder electron-updater --save-dev ``` 然后,在你的主进程文件中,添加以下代码: ```javascript const { app, autoUpdater } = require('electron'); const { autoUpdater } = require('electron-updater'); // 设置更新服务器的地址 autoUpdater.setFeedURL({ provider: 'generic', url: 'http://your-update-server.com' }); // 在应用启动时检查更新 autoUpdater.checkForUpdatesAndNotify(); // 处理更新下载完成事件 autoUpdater.on('update-downloaded', () => { // 通知用户更新已经下载完成,可以安装更新 autoUpdater.quitAndInstall(); }); ``` 在渲染进程(例如你的网页或者界面)中,你可以添加以下代码来手动检查更新: ```javascript const { ipcRenderer } = require('electron'); // 发送事件给主进程来检查更新 ipcRenderer.send('check-for-updates'); // 监听主进程返回的更新状态 ipcRenderer.on('update-status', (event, status) => { if (status === 'update-available') { // 通知用户有新的更新可用,可以选择是否下载 } else if (status === 'update-downloading') { // 通知用户更新正在下载中 } else if (status === 'update-downloaded') { // 通知用户更新已经下载完成,可以安装更新 } else if (status === 'update-not-available') { // 通知用户没有新的更新可用 } }); ``` 最后,在你的Electron Builder配置文件中,添加以下配置: ```json { "mac": { "target": "zip", "category": "your-category" }, "win": { "target": "nsis", "icon": "path/to/icon.ico", "publisherName": "your-publisher-name", "verifyUpdateCodeSignature": false }, "linux": { "target": "AppImage" }, "publish": { "provider": "generic", "url": "http://your-update-server.com" } } ``` 这样,你就可以使用Electron Builder和Electron Updater来实现自动更新了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值