自动更新电子

Nei*_*ung 11 air windows macos electron

我正在寻找为我所拥有的Electron安装部署自动更新功能,但是我发现很难在网络上找到任何资源.

我之前使用Adobe Air构建了一个自包含的应用程序,编写更新代码似乎更容易,有效地检查了URL并自动下载并安装了跨Windows和MAC OSX的更新.

我目前正在使用电子样板来简化构建.

我有几个问题:

  • 如何调试自动更新功能?我是否使用本地节点服务器设置本地连接并进行测试,还是可以使用任何Web服务器?
  • 在签署应用程序方面,我只想在MAC OSX上运行应用程序,特别是Windows.我是否必须签署应用程序才能运行自动更新?(我设法使用本地证书与Adobe Air合作.
  • 是否有任何好的资源详细说明如何实现自动更新功能?因为我很难找到一些关于如何做到这一点的好文档.

Jos*_*ura 4

我也是 Electron 的新手,但我认为电子样板(我也使用它)没有简单的自动更新。Electron 的自动更新程序使用 Squirrel.Windows 安装程序,您还需要将其实施到您的解决方案中才能使用它。

我目前正在尝试使用这个:

更多信息可以在这里找到:

编辑:我刚刚打开该项目尝试了一段时间,看起来很有效。它非常简单。这些是我的 gulpfile 中的片段。

在当前配置中,我使用 electro-packager 创建包。

var packager = require('electron-packager')
var createPackage = function () {
    var deferred = Q.defer();


    packager({
        //OPTIONS
    }, function done(err, appPath) {
        if (err) {
            gulpUtil.log(err);
        }

        deferred.resolve();
    });

    return deferred.promise;
};
Run Code Online (Sandbox Code Playgroud)

然后我使用 electro-installer-squirrel-windows 创建一个安装程序。

var squirrelBuilder = require('electron-installer-squirrel-windows');
var createInstaller = function () {
    var deferred = Q.defer();

squirrelBuilder({
// OPTIONS
}, function (err) {
        if (err)
            gulpUtil.log(err);

        deferred.resolve();
    });

    return deferred.promise;
}
Run Code Online (Sandbox Code Playgroud)

此外,您还需要将松鼠的一些代码添加到您的电子背景/主代码中。我使用了电子松鼠启动模板。

if(require('electron-squirrel-startup')) return;
Run Code Online (Sandbox Code Playgroud)

整个事情在上面提到的 electronics-installer-squirrel-windows npm 文档中进行了描述。看起来这些文档足以让它开始。现在,我正在通过 Squirrel 进行电子品牌推广,并为自动化创建适当的 gulp 脚本。