Electron-Mac应用的签名步骤说明

最近随着项目功能的逐步完善,准备发布正式版本,在发布正式版本之前,考虑到用户后续版本更新的问题,所以要给Electron应用添加版本更新的功能。
由于应用在Mac端自动更新时需要进行身份验证等,所以前提条件就是要先给应用进行签名。

当然,应用不签名也是可以打包成功的,可以在执行打包命令前执行:

export CSC_IDENTITY_AUTO_DISCOVERY=false

这样就可以在打包时跳过签名步骤。

签名

制作本地CSR文件

从Mac上进入钥匙串访问,打开证书助理--->从证书办法机构请求证书...


image.png

输入常用邮件,选择存储到磁盘,点击继续


image.png

最后会生成一个CSR的文件,这个文件就是我们接下来需要的东西,我把它放到了桌面上


image.png

生成Developer ID Application证书

打开苹果开发者网站证书列表

首先点击Certificates旁的加号


image.png

选择Developer ID Application类型的证书,注意Electron打包的桌面应用必须使用这个证书


image.png

然后开始选择CSR文件,就是第一步导出的放在了桌面上的那个文件


image.png

导入完毕之后,你就可以看到自己生成证书的信息了,最后点击下载


image.png

双击证书,将生成的证书导入到钥匙串中


image.png

打开钥匙串,找到这个证书,右键选择导出


image.png

文件格式选择个人信息交换(.p12),导出的路径要记住,后面要使用。
同时导出的时候会提示设置一个密码,也可以不设置。


image.png
image.png

生成Identifiers

点击Identifiers选项,进行添加


image.png

选择App IDs,继续


image.png

选择APP,继续


image.png

填写应用描述和BundleId,注意这个BundleId要同package.json中配置的appId要匹配。


image.png

配置环境变量

配置环境变量,用以让electron在打包时能找到刚才的p12证书。

打开Mac终端,输入命令:

sudo vim ~/.bash_profile

在.bash_profile新增两行配置:
CSC_LINK:刚才导出的p12文件的绝对路径
CSC_KEY_PASSWORD:导出p12文件时设置的密码

export CSC_LINK=/Users/ylp/Desktop/developerID_application.p12
export CSC_KEY_PASSWORD=123456

编辑完成后:wq保存退出,再执行以下命令进行重载环境变量:

source ~/.bash_profile

package.json配置

注意此处的appid应该跟上文Identifiers中设置的BundleId是一致的。
并且打包应用后不要随意更改新的appId字段,否则会被认为是两个不同的应用。

"build": {
    "appId": "com.xxx.yyy",
  },

到这里,签名配置就完成了,执行打包命令后发现在执行步骤中多了一个signing的步骤,说明签名成功了。


image.png

存在的问题

对于签名后的APP,经过测试,发现了两个问题:

  1. 摄像头、麦克风等设备访问时会出现崩溃。
    解决方法:Electron应用在macOS摄像头、麦克风访问崩溃问题解决方法

  2. 安装包安装失败。
    解决方法:Electron应用在macOS下公证方法

你可能感兴趣的:(Electron-Mac应用的签名步骤说明)