electron应用在macOS上代码签名

9/14/2021 JavaScript

# 背景

在 macOS 上,基于electron-builder (opens new window)进行打包时,可以不进行代码签名,但是带来的问题是无法进行自动更新。

# 解决步骤

  1. 申请 Apple 的 Developer ID Installer 这个类型的证书。
  2. 配置环境变量,或者直接安装导出的 .p12 证书

# 证书的选择

这里有点坑,经过查看 electron-builder 的源码 (opens new window),发现其使用electron-osx-sign (opens new window)进行代码签名的。

查看其wiki (opens new window)的使用文档,由于不上 App Store 进行分发,选择下面这两种证书的类型:Developer ID InstallerDeveloper ID Application:

4kzm6g.png (opens new window) 补充资料:macOS 开发 证书等配置/打包后导出及上架 (opens new window)

# 配置环境变量

到了这步,那应该有以下几个文件:application.p12、installer.p12、xxxxx.provisionprofile。 配置环境变量,修改 ~/.zshrc

export CSC_LINK=application.p12
export CSC_KEY_PASSWORD=your_p12_password
1
2

也可以在 electron-builder 的时候,修改 process.env

process.env["CSC_LINK"] = application.p12;
process.env["CSC_KEY_PASSWORD"] = your_p12_password;
1
2

最后配置 electron-builder:

mac: {
  provisioningProfile: './xxxxx.provisionprofile'
}

1
2
3
4
Last Updated: 2/21/2022, 11:35:56 AM