未在OSx中安装electron自动更新程序

未在OSx中安装electron自动更新程序,electron,auto-update,Electron,Auto Update,electron builder版本:20.28.4 electron更新程序版本:3.1.2 OSx、Windows和Ubuntu的构建 我正在尝试创建一个带有自动更新机制的电子应用程序。我面临着自动更新程序的问题,特别是对于OSx。它在linux和windows上运行得非常好(新版本是通过autoUpdater.quitAndInstall()下载并安装的;或者当用户退出应用程序时)。然而,在OSx上,新版本可以下载,但从未安装 下载更新时触发的事件如下所示,因此我确信更新确实已下载: au

electron builder版本:20.28.4

electron更新程序版本:3.1.2

OSx、Windows和Ubuntu的构建

我正在尝试创建一个带有自动更新机制的电子应用程序。我面临着自动更新程序的问题,特别是对于OSx。它在linux和windows上运行得非常好(新版本是通过autoUpdater.quitAndInstall()下载并安装的;或者当用户退出应用程序时)。然而,在OSx上,新版本可以下载,但从未安装

下载更新时触发的事件如下所示,因此我确信更新确实已下载:

autoUpdater.on('update-downloaded', (ev, info) => {
    setImmediate(() => {
        let iChoice = dialog.showMessageBox({
            type: 'question',
            message: oTrad['on-update-downloaded'],
            buttons: [oTrad['quit_and_install'], oTrad['install_later']]
        });
        if (iChoice === 0) {
            setImmediate(() => {
                var browserWindows = BrowserWindow.getAllWindows();
                browserWindows.forEach(function(browserWindow) {
                    browserWindow.destroy();
                });
                autoUpdater.quitAndInstall();
            })
        }
    });
});
当用户单击“退出并安装”调用autoUpdater.quitAndInstall()时,应用程序实际上并没有关闭(在docks中仍然显示为打开),也从未真正重新打开自己。如果我手动杀死它,然后再次启动它->下载的更新会再次启动,就好像从未下载或安装过更新一样。我很迷茫,因为这个机制在Linux和Windows上运行得很好

更新:

我发现我的问题与应用程序传输安全有关,它阻止了Mac上的更新,因此我在我的package.json中添加了一些配置来绕过这个问题:

"extendInfo": {
        "NSAppTransportSecurity": {
          "NSAllowsArbitraryLoads": true
 }
}
我现在的问题是quitaninstall()函数不起作用。只有在我实际关闭应用程序时,才下载并安装新版本。如果我调用quitaninstall,我将出现以下错误:

错误:没有可用的更新,无法退出并为安装代理服务器 本机Squirell.Mac已关闭


提前感谢

我在OSX上遇到了类似的问题,我通过写作解决了这个问题。在退出之前,我强制关闭所有窗口

if (iChoice === 0) {
 setImmediate(() => {
    app.removeAllListeners("window-all-closed")
    autoUpdater.quitAndInstall(false)
  })
}

我在OSX上遇到了一个类似的问题,我通过写作解决了这个问题。在退出之前,我强制关闭所有窗口

if (iChoice === 0) {
 setImmediate(() => {
    app.removeAllListeners("window-all-closed")
    autoUpdater.quitAndInstall(false)
  })
}

非常感谢,我一直在到处寻找修复方法。非常感谢,我一直在到处寻找修复方法。