electron的mac包部署发布流程
偶然发现之前开发的效率软件在github上下载了不能打开, 弄完签名发现以前弄过, 但没记录, 现在简要记录一下在mac平台上发布部署流程.
icns图标
mac打包需要icns图标, 是mac specified的. icns虽然会在finder里显示图片, 但他不是一个图片, 而是一个图片集合.
准备好一个icon.png
后需要2个步骤来生成icns: 使用sips裁剪图片, 使用iconutil生成icns.
1 | mkdir icons.iconset |
这个sips在平时对图片进行裁切旋转拉伸也是好用的.
code sign
mac打包必须经过code sign才能被下载使用. 步骤也挺简单的.
- 网上下载一个最新的
apple wwdrca
(Apple Worldwide Developer Relations Certification Authority)放到keychain里的system里. - 在xcode的account里生成一个apple development证书.
好了, 完事. 但记得在换电脑或证书过期的时候要重新操作一遍. 我就是因为换电脑并过期重新操作的时候忘了以前怎么弄的又折腾了一下.
ci code sign
我的ci用的github action, 其他的也类似.
electron-builder使用体验非常好, 接受base64证书, 而不需要在ci里写麻烦的流程. 我们要做的是:
- 在keychains里把apple development证书导出p12文件.
- 获取p12文件的base64值.
- 在github新建一个environment, 设置2个秘密变量, 一个是base64值, 一个是导出p12时候设置的密码.
- 在ci里指定environment为上个步骤创建的environment.
- 在ci执行electron-builder的那一步新增2个env:
CSC_LINK
和CSC_KEY_PASSWORD
分别指向环境的秘密变量. (要使用env变量不能export定义变量)
好了, 又完事. 这样ci环境也会进行code sign了. 如果觉得抽象就点这里看具体ci.
另外有个小细节, 如果不小心在keychains里把证书删了无法导出, 去xcode新建一个项目, 证书就会重新被产生了.
auto update
直接使用electron-builder的auto-updater. 按照文档做好配置, call几个api, 非常丝滑, 就能达到非常理想的程度.
用户第一次下载并右击打开软件后, 以后我们推了代码后用户就能丝滑更新了.
(本文完)
如果你可以 点击这个链接打赏我5毛来鼓励我, 非常感谢.
本文遵循 cc协议
你可以在注明出处和非商用的前提下任意复制及演绎