Electron打包以及使用CloudKit做自动更新服务

2022-08-16 15:04:15 浏览数 (1)

toc

  • Electron打包
  • Electron自动更新
    • Mac 版本签名
    • 自动更新服务端

Electron打包

Electron代码编写之后便是打包, 官网 介绍了几种方法,用了 electron-packager

主要就是两个命令:

安装electron-packager

代码语言:javascript复制
# for use in npm scripts
npm install electron-packager --save-dev

# for use from cli
npm install electron-packager -g

以及打包

代码语言:javascript复制
electron-packager <sourcedir> <appname> --platform=<platform> --arch=<arch> [optional flags...]

package.json中配置都填写后(不要漏了productName , authordescription后续自动更新会需要),打包命令可以这样写:

代码语言:javascript复制
electron-packager ./ --all 

打包Mac版就可以这样

代码语言:javascript复制
electron-packager ./ --platform=darwin --arch=x64 

打包完会在项目根目录下生成打包文件的目录。

Electron自动更新

electron依赖Squirrel做自动更新,Mac版electron已经内置Squirrel.Mac

Mac 版本签名

开发过程中发现需要签名(可能是个例,其他教程中说不需要),所以在打包的时候需要附带签名信息,具体的可以参考 electron-osx-sign

Mac App Store版不能有自动更新,非Mac App Store版打包命令

代码语言:javascript复制
electron-packager ./ --platform=darwin --arch=x64 --app-bundle-id="Developer ID Application" --osx-sign

自动更新服务端

自动更新需要服务端支持,核心就是请求服务端判断是否有新版本

代码语言:javascript复制
GET /mac/lastes?version=[verson]

如果无新版本返回204即可,如果有新版需要返回200的json(必须要url字段,提供app的zip包):

代码语言:javascript复制
{
	url:'http://site.com/app.zip'
}

以上的介绍在网上有更加详尽的说明。

因为Hipo本身引入了CloudKit做数据多设备同步,Cloudkit也支持web,和server端请求public database中的数据,再加上CloudKit近乎奢侈的额度,还不错的大文件(electron打包后的app有200~300M)上传下载速度(大家可以通过Hipo cloudkit测试

0 人点赞