我在电子应用程序的自动更新方面遇到问题,在完成所有应用程序部分并尝试将其推送到我的自定义更新服务器后,我在记录器中发现了此错误消息:
Error unknown ENOENT: no such file or directory, open
'C:\{appPath}\{appName}\resources\app-update.yml'
Run Code Online (Sandbox Code Playgroud)
这是我的 package.json 构建配置
"build": {
"appId": "com.server.app",
"copyright": "Copyright company name",
"generateUpdatesFilesForAllChannels": true,
"win": {
"target": "nsis",
"icon": "build/icon.ico"
},
"mac": {
"target": "dmg",
"artifactName": "appName.dmg",
"icon": "build/icon.icns"
},
"dmg": {
"background": "build/i-bg.tif",
"icon": "build/setup.icns",
"iconSize": 80,
"title": "${productName}-${version}",
"window": {
"width": 540,
"height": 380
}
},
"nsis": {
"artifactName": "${productName}-Setup-${version}.${ext}",
"oneClick": false,
"perMachine": false,
"allowToChangeInstallationDirectory": true,
"installerIcon": "build/setup.ico",
"uninstallerIcon": "build/setup.ico",
"installerHeader": "build/installerHeader.bmp",
"installerSidebar": "build/installerSidebar.bmp",
"runAfterFinish": true,
"deleteAppDataOnUninstall": true, …Run Code Online (Sandbox Code Playgroud) 我已经使用 PRIVATE GitHub Repository 作为发布电子应用程序的提供者实现了 Electron AutoUpdater。现在,我可以使用 GitHub 存储库发布它,但是每当 AutoUpdater 尝试从 GitHub 存储库下载更新时,每次都会提示响应代码 404 Not found..也不起作用。
autoUpdater.setFeedURL({ provider: 'github'
, owner: 'owner'
, repo: 'repo-name'
, token: 'token'
, private: true });
Run Code Online (Sandbox Code Playgroud)
那么,有没有办法让它与 PRIVATE GitHub Repository 一起工作?
我有一个电子应用程序,用于electron-builder构建、打包和发布应用程序。
我有以下自动更新代码:
autoUpdater.logger = log;
autoUpdater.logger.transports.file.level = "info";
autoUpdater.autoDownload = true;
const updateCheck = () => {
autoUpdater.checkForUpdates().then(resp => {
log.info("autoUpdate response:");
log.info(resp);
});
};
app.on("ready", async () => {
log.info(`Version: ${app.getVersion()}`);
autoUpdater.on("update-downloaded", () => {
log.info("update downloaded");
setImmediate(() => {
try {
log.info("installing update");
// app.relaunch();
autoUpdater.quitAndInstall();
} catch (err) {
log.error("Error installing update");
log.error(err);
}
});
});
autoUpdater.on("error", err => {
log.error("AutoUpdater error");
log.error(err);
});
updateCheck();
schedule.scheduleJob("*/10 * * * *", updateCheck);
});
Run Code Online (Sandbox Code Playgroud)
当我发布新版本时,自动更新程序会检测到它,成功下载它,然后尝试安装它。
在安装更新期间,进度条填满一半,然后消失。
应用程序保持关闭状态,并且在进度条消失后不会自动重新启动。 …
我创建了一个电子应用程序。使用电子构建器我在linux中创建了appImage。我想在linux中为windows构建应用程序。但它抛出了wine required错误。请帮助解决这个问题。这是package.json
"name": "Gamer",
"version": "1.0.0",
"main": "main.js",
"repository": "https://github.com/XYX/GAME",
"dependencies": {
"@agm/core": "^1.0.0-beta.5",
...
"electron-builder-squirrel-windows": "^22.1.0",
"electron-packager": "^14.1.0",
"electron-reload": "^1.5.0",
"electron-store": "^5.1.0",
},
"devDependencies": {
...
"electron": "^7.1.1",
"electron-builder": "^22.1.0",
"electron-prebuilt": "^1.4.13",
"electron-updater": "^4.2.0",
...
},
"scripts": {
"ng": "ng",
"start": "ng serve",
"start:electron": "ng build --base-href ./ && electron .",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e",
"electron": "electron .",
"electron-build": "ng build --prod && electron .",
"pack": "electron-builder --dir",
"dist": "electron-builder",
"build:Win": …Run Code Online (Sandbox Code Playgroud) Electron updater 4.2.0 软件包无法下载新版本,但可以检测到它
这是 github 上的私人存储库
新版本已成功发送到github
在package.json中:
"build": {
"appId": "com.myApp.ID",
"npmRebuild": false,
"win": {
"icon": "./resources/electron/icons/256x256.png",
"publish": [
{
"provider": "github",
"owner": "me",
"repo": "POS",
"private": true,
"releaseType": "release",
"token": "<private token>"
}
],
"target": [
{
"target": "nsis",
"arch": [
"x64"
]
}
]
}
},
Run Code Online (Sandbox Code Playgroud)
我的 electro.js 文件或 main.js 我有:
win.webContents.on('did-finish-load', () => {
if(!serve) {
appUpdater(win);
}
});
Run Code Online (Sandbox Code Playgroud)
appUpdater函数是:
function appUpdater(win) {
autoUpdater.autoInstallOnAppQuit = true;
autoUpdater.autoDownload = true;
autoUpdater.logger = logger;
/* …Run Code Online (Sandbox Code Playgroud) 以前我们使用.dmg目标并发布在S3 存储桶上,因此在 S3 和电子应用程序上它会自动创建latest-mac.yml和app-update.yml文件,并为下一个版本的应用程序自动更新。
但现在我们使用目标作为.pkg。自动更新程序现已停止。latest-mac.yml和app-update.yml不是为.pkg目标创建的。但构建已成功上传到 s3。
包.json
"package-ci": "yarn postinstall && yarn build && electron-builder --publish always",
.....
"mac": {
"entitlements": "build/entitlements.mac.inherit.plist",
"entitlementsInherit": "build/entitlements.mac.inherit.plist",
"icon": "./resources/icon.png",
"target": [
"pkg"
]
},
........
"publish": {
"provider": "s3",
"bucket": "build",
}
Run Code Online (Sandbox Code Playgroud)