megahertz / electron-simple-updater

Simple way to enable update for the electron application
MIT License
369 stars 75 forks source link

can not get update! #52

Closed jackple closed 6 years ago

jackple commented 6 years ago

I publish an app with version 1.0.4 in package.json, when I use electron-simple-updater, I make the updates.json like: { "win32-x64-prod": { "readme": "日常更新", "update": "https://xxxx/worker-management/1520414279", "install": "https://xxxx/worker-management/1520414279/%E4%BC%8A%E4%BA%91%E4%BB%93TEM%20Setup%201.0.5.exe", "version": "1.0.5" } }

I run this script to pack: "pack:win": "electron-builder --win --ia32" my update url is "updater": { "url": "http://xxxx/worker-management/raw/master/updates.json?private_token=xxxx" }

in main.js

updater.init({ checkUpdateOnStart: false, autoDownload: false })

in render.js:

import { remote } from 'electron' export default function update() { const updater = remote.require('electron-simple-updater') updater.on('update-available', meta => { console.log('[updater] update avaiable', meta.version) updater.downloadUpdate() }) updater.on('update-not-available', () => { console.log('there is no available update') }) updater.on('update-downloading', () => {}) updater.on('update-downloaded', () => { if (window.confirm('Restart and install updates?')) { updater.quitAndInstall() } }) updater.on('error', err => { console.warn(err) }) updater.checkForUpdates() }

I always got 'there is no available update'. What is wrong with my case?

megahertz commented 6 years ago
  1. Make sure that you 1.0.5 is published successfully (with exact version 1.0.5 in package.json)
  2. Make sure that you run 1.0.4 to test updates (also, with exact version 1.0.4 in package.json)
  3. Show application logs (run compiled app from console or use electron-log instead of console.log)
jackple commented 6 years ago

@megahertz I have uploaded three file like: image

jackple commented 6 years ago

@megahertz I get the error "Can not find Squirrel", but I do not find some ways to fix it. Can you help?

megahertz commented 6 years ago

@jackple https://github.com/electron/electron/issues/4535

jackple commented 6 years ago

@megahertz I saw this issue, but I do not know how to fix it

megahertz commented 6 years ago

Check your build config, for example https://github.com/megahertz/electron-simple-updater/blob/master/example/package.json

jackple commented 6 years ago

@megahertz "updater": { "url": "http://xxxxxx/-worker-management/raw/master/updates.json?private_token=xxxxx" }, "build": { "productName": "伊云仓TEM", "appId": "com.worker-management", "directories": { "output": "package" }, "files": [ "dist/production/", "node_modules/", "package.json", "index.js", "index.html" ], "dmg": { "contents": [ { "x": 410, "y": 150, "type": "link", "path": "/Applications" }, { "x": 130, "y": 150, "type": "file" } ] }, "mac": { "icon": "src/assets/icons/icon.icns", "category": "public.app-category.utilities", "target": [ "dmg" ] }, "win": { "icon": "src/assets/icons/icon.ico", "target": [ "nsis", "squirrel" ] }, "squirrelWindows": { "iconUrl": "https://xxxx/uploads/icon.ico" } }

I can not see what is the problem with my config

jackple commented 6 years ago

@megahertz the error like that: image image

megahertz commented 6 years ago

First of all, disable nsis and rebuild the application for both 1.0.4 and 1.0.5

jackple commented 6 years ago

@megahertz thank you so much! I added the "nsis" option because I though that user must install the app(producted by nsis) at the first time, but it is not.

jackple commented 6 years ago

@megahertz It was successfully when I installed 1.0.0 and I updated to 1.0.1, but I got error when I tried to update to 1.0.2.

Error: Command failed: 4294967295 System.AggregateException: ����һ���������� ---> System.Exception: Checksummed file size doesn't match: C:\Users\ERP\AppData\Local\worker-management\packages\worker-management-1.0.12-full.nupkg �� Squirrel.UpdateManager.DownloadReleasesImpl.checksumPackage(ReleaseEntry downloadedRelease) �� Squirrel.UpdateManager.DownloadReleasesImpl.<>cDisplayClass2_0.<b1>d.MoveNext() --- �����쳣����һλ���ж�ջ���ٵ�ĩβ --- �� System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) �� System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) �� Squirrel.Utility.<>cDisplayClass13_0`1.<b1>d.MoveNext() --- �����쳣����һλ���ж�ջ���ٵ�ĩβ --- �� System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) �� System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) �� Squirrel.UpdateManager.DownloadReleasesImpl.d2.MoveNext() --- �����쳣����һλ���ж�ջ���ٵ�ĩβ --- �� System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) �� System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) �� Squirrel.UpdateManager.d8.MoveNext() --- �����쳣����һλ���ж�ջ���ٵ�ĩβ --- �� System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) �� System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) �� Squirrel.Update.Program.d5.MoveNext() --- �ڲ��쳣��ջ���ٵĽ�β --- �� System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) �� System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) �� System.Threading.Tasks.Task.Wait() �� Squirrel.Update.Program.executeCommandLine(String[] args) �� Squirrel.Update.Program.main(String[] args) �� Squirrel.Update.Program.Main(String[] args) ---> (�ڲ��쳣 #0) System.Exception: Checksummed file size doesn't match: C:\Users\ERP\AppData\Local\worker-management\packages\worker-management-1.0.12-full.nupkg �� Squirrel.UpdateManager.DownloadReleasesImpl.checksumPackage(ReleaseEntry downloadedRelease) �� Squirrel.UpdateManager.DownloadReleasesImpl.<>cDisplayClass2_0.<b1>d.MoveNext() --- �����쳣����һλ���ж�ջ���ٵ�ĩβ --- �� System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) �� System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) �� Squirrel.Utility.<>cDisplayClass13_0`1.<b1>d.MoveNext() --- �����쳣����һλ���ж�ջ���ٵ�ĩβ --- �� System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) �� System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) �� Squirrel.UpdateManager.DownloadReleasesImpl.d2.MoveNext() --- �����쳣����һλ���ж�ջ���ٵ�ĩβ --- �� System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) �� System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) �� Squirrel.UpdateManager.d8.MoveNext() --- �����쳣����һλ���ж�ջ���ٵ�ĩβ --- �� System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) �� System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) �� Squirrel.Update.Program.d5.MoveNext()<---

at AutoUpdater.emitError (C:\Users\ERP\AppData\Local\worker-management\app-1.0.11\resources\electron.asar\browser\api\auto-updater\auto-updater-win.js:58:24)
at squirrelUpdate.update (C:\Users\ERP\AppData\Local\worker-management\app-1.0.11\resources\electron.asar\browser\api\auto-updater\auto-updater-win.js:43:23)
at ChildProcess.<anonymous> (C:\Users\ERP\AppData\Local\worker-management\app-1.0.11\resources\electron.asar\browser\api\auto-updater\squirrel-update-win.js:71:14)
at emitTwo (events.js:125:13)
at ChildProcess.emit (events.js:213:7)
at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
megahertz commented 6 years ago

It seems that your build is corrupted.

tech-and-avinash commented 5 years ago

i using windows target as portable.... cannot find squirrel?? does it work with portable??? it tried "squirrel" but i faced the issue below... TypeError: packager.info.callArtifactBuildStarted is not a function

megahertz commented 5 years ago

@Crazie-ash No it doesn't works with portable build. https://github.com/electron-userland/electron-builder/issues/3508

tech-and-avinash commented 5 years ago

it doesn't work with squirrel and zip target - while building TypeError: packager.info.callArtifactBuildStarted is not a function then i tried with nsis target - it throwed this Error: Can not find Squirrel... i don't know what i am missing!!!

{ "keywords": [ "angular", "angular 7", "electron", "typescript", "sass" ], "main": "main.js", "private": true, "files": [ "!README.md", "!updates.json" ], "scripts": { "postinstall": "npm run postinstall:electron && electron-builder install-app-deps", "postinstall:web": "node postinstall-web", "postinstall:electron": "node postinstall", "ng": "ng", "start": "npm run postinstall:electron && npm-run-all -p ng:serve electron:serve", "build": "npm run postinstall:electron && npm run electron:serve-tsc && ng build", "build:dev": "npm run build -- -c dev", "build:prod": "npm run build -- -c production", "ng:serve": "ng serve", "ng:serve:web": "npm run postinstall:web && ng serve -o", "electron:serve-tsc": "tsc -p tsconfig-serve.json", "electron:serve": "wait-on http-get://localhost:4200/ && npm run electron:serve-tsc && electron . --serve", "electron:local": "npm run build:prod && electron .", "electron:linux": "npm run build:prod && electron-builder build --linux --ia32 --x64 --armv7l", "electron:windows": "npm run build:prod && electron-builder build --windows", "electron:mac": "npm run build:prod && electron-builder build --mac", "test": "npm run postinstall:web && ng test", "e2e": "npm run postinstall:web && ng e2e", "version": "conventional-changelog -i CHANGELOG.md -s -r 0 && git add CHANGELOG.md" }, "dependencies": { "@angular/animations": "^7.2.4", "@angular/cdk": "^7.3.0", "@angular/core": "^7.1.4", "@angular/material": "^7.3.0", "@angular/router": "^7.1.4", "auto-launch": "^5.0.5", "delay": "^4.2.0", "desktop-idle": "^1.1.2", "electron-builder-squirrel-windows": "^20.40.0", "electron-log": "^3.0.5", "electron-notifications": "^1.0.0", "electron-positioner": "^4.1.0", "electron-process-manager": "^0.7.0", "electron-simple-updater": "^1.5.0", "electron-store": "^3.1.0", "electron-updater": "^4.0.6", "is-online": "^8.1.0", "ngx-toastr": "^9.1.2", "parse": "1.11.1", "run-electron": "^0.1.0" }, "devDependencies": { "@angular-devkit/build-angular": "0.11.4", "@angular/cli": "7.1.4", "@angular/common": "7.1.4", "@angular/compiler": "7.1.4", "@angular/compiler-cli": "7.1.4", "@angular/core": "7.1.4", "@angular/forms": "7.1.4", "@angular/http": "7.1.4", "@angular/language-service": "7.1.4", "@angular/platform-browser": "7.1.4", "@angular/platform-browser-dynamic": "7.1.4", "@angular/router": "7.1.4", "@ngx-translate/core": "11.0.1", "@ngx-translate/http-loader": "4.0.0", "@types/jasmine": "2.8.7", "@types/jasminewd2": "2.0.3", "@types/node": "8.9.4", "codelyzer": "4.5.0", "conventional-changelog-cli": "2.0.11", "core-js": "2.6.1", "electron": "^4.0.8", "electron-builder": "20.36.2", "electron-reload": "1.3.0", "electron-simple-publisher": "^0.6.2", "jasmine-core": "3.3.0", "jasmine-spec-reporter": "4.2.1", "karma": "3.1.1", "karma-chrome-launcher": "2.2.0", "karma-coverage-istanbul-reporter": "2.0.4", "karma-jasmine": "2.0.1", "karma-jasmine-html-reporter": "1.4.0", "npm-run-all": "4.1.5", "primeicons": "^1.0.0", "primeng": "^6.1.7", "protractor": "5.4.1", "rxjs": "6.3.3", "ts-node": "7.0.1", "tslint": "5.11.0", "typescript": "3.1.6", "wait-on": "3.2.0", "webdriver-manager": "12.1.0", "zone.js": "0.8.26" } }

megahertz commented 5 years ago

@Crazie-ash I think electron-builder and electron-builder-squirrel-windows should have the same version. Anyway, I can't help you too much with the build problem.

tech-and-avinash commented 5 years ago

As u said i tried using the same version. it worked well but i am still facing this Error: Can not find Squirrel

I am using the following updates.json { "win32-x64-prod": { "update": "http://"myip"/bbUpdate/windows/exe", "install": "http://"myip"/bbUpdate/windows/exe/appSetup1.0.1.exe", "version": "1.0.1" } }

package.json "electron-builder-squirrel-windows": "20.39.0", "electron-builder": "20.39.0",

electron-builder.json "win": { "icon": "dist/assets/favicon.256x256.png", "target": [ "squirrel", "zip" ]}, "squirrelWindows": { "iconUrl": "https://raw.githubusercontent.com/megahertz/electron-simple-updater/master/example/build/icon.ico" },

update path folder "/bbUpdate/windows/exe/" contains the following

app-1.0.1-win.zip appSetup1.0.1.exe appSetup1.0.1.nupkg builder-effective-config.yaml RELEASES

megahertz commented 5 years ago

@Crazie-ash You can see such a message only when you run non squirrel build.