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

本文详细介绍了如何在Mac上为Electron应用进行代码签名和公证,包括Apple开发者账号的创建,环境变量配置,使用electron-notarize插件,以及配置hardened runtime、权限和开发者ID签名等步骤,确保应用能在MacOS 10.14.5及以上版本顺利运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


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来说是不合理的,electron所做的是打包的时候就把一切问题解决了,所以,还是需要在打包的根源上寻找解决方法:

2、使用electron-notarize插件

1、安装 electron-notarize 插件

运行命令:npm i electron-notarize --save-dev

2、使用hardened runtime构建App

在 electron-builder mac配置选项中设置 “hardenedRuntime”: true;

3、设置正确权限

在public文件夹下新建名为 entitlemets.mac.plist 的文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version=
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值