我无法使用内置的autoUpdater模块使我们的代码签名的Mac Electron应用自动更新(我知道有替代方法,但该指令是尽可能使用标准的)。
根据电子文档:
在macOS上,autoUpdater模块基于Squirrel.Mac构建,这意味着您无需任何特殊设置即可使其工作。
根据Squirrel.Mac文档:
当有可用更新时,Squirrel期望以下模式响应提供的更新请求:
{ “ url”:“ https://mycompany.example.com/myapp/releases/myrelease”, “ name”:“我的发行名称”, “ notes”:“这些是一些发行说明,” “ pub_date”:“ 2013-09-18T12:29:53 + 01:00” }
唯一需要的键是“ url”,其他是可选的。
我有一个Lambda函数,该函数返回符合上述模式的200状态JSON响应:
{
"name": "3.2.10",
"upgradeStatus": "minor",
"url": "https://s3.amazonaws.com/somebucket/product/staging/installers/latest/My%20Product%20Name.zip"
}
然后,我使用autoUpdater.setFeedURL(http://api.mycompany/updatechecker/productname/latest?v=1.0.0)
尝试进行更新,但是由于Error: Update check failed. The server sent an invalid response. Try again later.
似乎来自SQRLUpdater.m
而失败。
在浏览器中访问返回的URL会下载包含安装程序的ZIP文件,那么Electron为什么会抱怨?