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的主要内容,如果未能解决你的问题,请参考以下文章