准备工作:
首先我们需要去苹果官方网站,申请一个开发者证书(需要每年99美元的年费),Developer ID Application ,如果你想要打包成pkg格式的安装包,需要再准备一个Developer ID Installer 证书。
1.下载对应证书
首先打开我们mac系统的钥匙串应用,选择以下选项
填写对应内容,CA电子邮件地址不用填,要选择存储到磁盘
点击继续后,我们会得到一个文件
然我我们进入到苹果开发者平台下载对应的证书,苹果开发者网站,去下载对应的证书
然后选择文件,选择我们的请求证书即可,即上面的CertificateSigning...Request,然后点击下载,会得到一个类似这样的cer文件
双击安装到钥匙串里面,去钥匙串确认是否存在
至此,准备工作完成,如果你需要打包为pkg,还是按照上述流程走,在你的钥匙串里安装Developer ID Installer: 公司名字(teamId) 类似的证书
2.准备打包签名
1.我们无需改动任何electron-builder 打包配置的代码,直接打包即可
2.所以说签名还是很简单的,那么问题来了,现在只有你的钥匙串里有证书,别人没有,想让你的队友也打包签名怎么办呢?答案很简单,只需要右击导出成p12,发给别人就行
在这里我们会设置一个密码,把这个p12文件发给别人,别人双击p12文件并输入密码就可以安装到他的钥匙串里面了
可以看到我们打包的时候它会自动签名
3.公证
1.签名后,我们可以对打包后的app进行公证,只有签名是不行的,必须得进行公证
2.我们新建一个js文件
const { notarize } = require('electron-notarize')
{
return await notarize({
tool: 'notarytool',
teamId: '你的teamid',
appBundleId: "com.xxx.xx",
appPath: "./dist/mac-arm64/xxx.app",
appleId: "你的苹果账号",
appleIdPassword: "xxxx-xxxx-xxxx-xxxx",
ascProvider: "你的teamid", // 团队 ID
})}
excute();
直接执行该文件即可,当然你也可以用electron-builder提供的hook:afterSign,实现自动化公证
当然我们第一次公证不用那么高级,先签名打包出来,在执行下这段代码即可,手动公证一下
这里需要说的是appleIdPassword,你要在苹果账户哪里生成专用app密钥,并且这个密钥只能看见一次,记得复制保存好 点击这里去生成专用app专用密钥
teamId就是你的钥匙串里的证书 类似Developer ID Appliactions: 公司名(teamId)