Electron autoUpdate 应用程序使用 electron-updater 和 github 私有 repo

Posted

技术标签:

【中文标题】Electron autoUpdate 应用程序使用 electron-updater 和 github 私有 repo【英文标题】:Electron autoUpdate app using electron-updater with github private repo 【发布时间】:2021-12-18 04:09:35 【问题描述】:

我做了什么:我使用 electron-builder 打包了我的电子应用程序。我使用 electron forge typescript 和 webpack 模板来创建我的电子应用程序。

错误:在https://api.github.com/repos/OWNER/REPO/releases/assets/48643890"中找不到资产“app-setup-21.6.9.exe”

我认为问题可能与我在 github 上发布时构建文件的位置有关?

MAIN.JS

import  app, BrowserWindow, ipcMain  from 'electron';
import  autoUpdater  from "electron-updater";
const log = require('electron-log');


declare const MAIN_WINDOW_WEBPACK_ENTRY: string;
declare const MAIN_WINDOW_PRELOAD_WEBPACK_ENTRY: string;



const createWindow = (): void => 
  // Create the browser window.
  const mainWindow = new BrowserWindow(
    height: 650,
    width: 1200,
    webPreferences: 
      preload: MAIN_WINDOW_PRELOAD_WEBPACK_ENTRY,
    ,
  );

  // and load the index.html of the app.
  mainWindow.loadURL(MAIN_WINDOW_WEBPACK_ENTRY);



  autoUpdater.logger = log;
  log.info('App starting...');
  

  mainWindow.once('ready-to-show', () => 
    autoUpdater.checkForUpdatesAndNotify();

  );

  autoUpdater.on('update-available', () => 
    log.info("update-available");
    mainWindow.webContents.send('update_available');
  );

  autoUpdater.on('error', (ev, err) => 
    mainWindow.webContents.send('error', err);
    log.info(err);
);

autoUpdater.on('download-progress', (ev, progressObj) => 
  mainWindow.webContents.send('download-progress', progressObj);
)

  autoUpdater.on('update-downloaded', () => 
    log.info("update_downloaded");
    mainWindow.webContents.send('update_downloaded');
    autoUpdater.quitAndInstall();
  );


  // returns repos current Version 
  ipcMain.on('app_version', (event) => 

    log.info(app.getVersion());

    mainWindow.webContents.send('app_version',  version: 
    app.getVersion() );
  );


;

Main.js 日志

[info]  App starting...
[info]  Checking for update
[info]  Found version 21.6.9 (url: @cloudreign/app-setup-21.6.9.exe)
[info]  update-available
[info]  Downloading update from @cloudapp/app-setup-21.6.9.exe
[error] Error: Error: Cannot find asset "app-setup-21.6.9.exe" in: https://api.github.com/repos/<OWNER>/<REPO>/releases/assets/48643890"

【问题讨论】:

【参考方案1】:

在我的情况下,我的 package.json 文件中有一个 productName 密钥,其名称与 github 存储库不同。当我将其更改为与 GitHub 存储库相同的名称时,它起作用了。

【讨论】:

【参考方案2】:
autoUpdater.on('update-available', () => 
  log.info("update-available");
  autoUpdater.downloadUpdate() ;
);

您需要添加 autoUpdater.downloadUpdate() ;下载更新。

【讨论】:

以上是关于Electron autoUpdate 应用程序使用 electron-updater 和 github 私有 repo的主要内容,如果未能解决你的问题,请参考以下文章

Autoupdate是啥?

如何使开发工具在 Electron 中默认不显示在屏幕上?

Autoupdate是啥?

autoupdate别克显示啥意思?

如何使 SQLite 与 Angular 4+、Electron 和 NodeJS 一起工作

autoupdate这是啥程序?起啥作用?不用可以吗?