Ich habe meinen eigenen Server, auf dem ich das App-Installationsprogramm über FTP hochgeladen habe. Sein Name ist quickmargo Setup 1.0.0.exe
und es ist verfügbar bei
https://quickmargo.pl/dist/download/quickmargo Setup 1.0.0.exe
Auch über FTP habe ich latest.yml
in dasselbe Verzeichnis hochgeladen und es ist verfügbar unter
https://quickmargo.pl/dist/download/latest.yml
In meinem Projekt in index.js habe ich
import { autoUpdater } from 'electron-updater'
autoUpdater.setFeedURL('https://quickmargo.pl/dist/download');
autoUpdater.on('update-downloaded', () => {
autoUpdater.quitAndInstall()
});
autoUpdater.on('update-available', (ev, info) => {
alert('Update required!');
});
app.on('ready', async () => {
if (process.env.NODE_ENV === 'production') {
await autoUpdater.checkForUpdates()
}
});
In package.json habe ich "version": "1.0.0",
und drinnen habe build:{}
ich:
"win": {
"icon": "build/icons/icon.ico",
"publish": [{
"provider": "generic",
"url": "https://quickmargo.pl/dist/download"
}]
},
(Andere Plattformen interessieren mich nicht)
Nehmen wir jetzt an, ich habe einige Änderungen an meiner App vorgenommen und möchte Version 1.0.1 hochladen. Ich möchte, dass meine App automatisch aktualisiert wird, wenn jemand das Installationsprogramm bereits heruntergeladen und meine App auf seinem Computer installiert hat.
Sagen Sie mir bitte, ob alles, was ich bisher gemacht habe, in Ordnung ist und was der nächste Schritt ist. Ich betrachte Folgendes:
- Wechseln Sie
version
zu1.0.1
in package.json - Führen Sie den Befehl build erneut im Terminal aus
- Laden Sie das neue Installationsprogramm manuell an denselben Ort auf meinem Server hoch
Bearbeiten
Ich habe die oben genannten drei Schritte ausgeführt und außerdem die neueste Datei "latest.yml" (mit Version 1.0.1) hochgeladen. Wenn ich jetzt die zuvor installierte Version 1.0.0 (vor dem Hochladen einer neuen Version auf den Server) auf einem anderen PC ausführe, ist dies nicht der Fall Stellen Sie fest, dass ich 1.0.1 zum Server hinzugefügt habe und dieser kein Popup oder ähnliches aktualisiert oder anzeigt. Was mache ich falsch?
Bearbeiten 2
Ich versuche es selbst zu lösen und jetzt habe ich 1.0.2 hochgeladen. Der Link zum Herunterladen der App lautet also:
https://quickmargo.pl/dist/download/quickmargo Setup 1.0.2.exe
Bearbeiten 3
Ich habe versucht, es selbst zu lösen. Ich habe den Code in index.js bearbeitet. Ich habe auch oben bearbeitet. alert('Update required!');
im update-available
Ereignis nie auftreten. Es sollte mir ein Fehlermeldungsfenster zeigen, dass die Warnung undefiniert ist. Aber anscheinend wird ein Update-verfügbares Ereignis niemals ausgegeben.
Zusätzliche Information:
- Meine App wurde mit Vue-Electron
v1.0.6
Boilerplate generiert . - Meine Elektronen-Updater-Version ist
4.1.2
npm run build
.electron-vue/build.js
Rufen Sie tatsächlich einen Code von Boilerplate auf, in dem Sie diese Datei im obigen Link sehen können (zum Beispiel setzt sie NODE_ENV auf Produktion. Das Skript in package.json lautet :"build": "node .electron-vue/build.js && electron-builder",
.- Ich möchte keine Releases bei github hosten, da mein Repository privat ist und ich in elektron.build-Dokumenten einige Informationen gesehen habe , die ich nicht tun sollte.
- Ich habe in einigen Ausgaben auch Informationen gesehen, dass ich nur für Releases ein neues Repo erstellen könnte, aber ich betrachte das Hosten von allem auf meinem eigenen Server als saubereren Ansatz.
electron-log
, der dem autoUpdater einen Logger zur Verwendung gibt ( const logger = require("electron-log"); autoUpdater.logger = logger; logger.transports.file.level = "debug";
). Dies sollte Informationen ausdrucken, wenn Ihre Server wurde gefunden und ob ein Update gefunden wurde. Wenn Sie eine Fehlermeldung erhalten, können Sie diese Ihrer Frage hinzufügen.