Electronアプリのアップデート実装はカンタンだった話
Electronアプリのアップデートを実装する典型的な方法は、ElectronのautoUpdaterモジュールを使用することです。これは、アプリケーションを自動的にアップデートするためのAPIを提供しています。以下に、基本的な手順を示します。
electron-builderパッケージをインストール: electron-builderは、Electronアプリをビルドし、配布するためのツールです。これをインストールするには、プロジェクトディレクトリで次のコマンドを実行します。
npm install electron-builder --save-dev
electron-updaterをインストール: electron-updaterは、autoUpdaterモジュールを使いやすくするラッパーライブラリです。これをインストールするには、プロジェクトディレクトリで次のコマンドを実行します。
npm install electron-updater --save
メインプロセスのコードにautoUpdaterを実装: アプリのメインプロセスファイル(通常はmain.jsまたはindex.js)に、次のようなコードを追加してautoUpdaterを設定します。
const { app, BrowserWindow, ipcMain } = require('electron');
const { autoUpdater } = require('electron-updater');
let mainWindow;
function createWindow() {
mainWindow = new BrowserWindow({ ... });
mainWindow.loadURL('file://' + __dirname + '/index.html');
mainWindow.on('closed', () => { mainWindow = null; });
}
app.on('ready', () => {
createWindow();
autoUpdater.checkForUpdatesAndNotify();
});
autoUpdater.on('update-available', () => {
mainWindow.webContents.send('update_available');
});
autoUpdater.on('update-downloaded', () => {
mainWindow.webContents.send('update_downloaded');
});
ipcMain.on('restart_app', () => {
autoUpdater.quitAndInstall();
});
更新をチェックするためのリリースサーバーを設定: アプリの更新をホストするリリースサーバーを設定し、package.jsonに以下のような設定を追加します。
"build": {
"publish": [
{
"provider": "generic",
"url": "https://your-release-server.com/path-to-updates/"
}
]
}
アプリをビルドしてリリース: アプリをビルドし、生成されたインストーラとアップデートファイルをリリースサーバーにアップロードします。ビルドコマンドは以下の通りです。
npm run build
リリースサーバーには、アプリケーションのビルド済みバイナリ、アップデートファイル、および更新情報を提供するためのメタデータファイル(latest.yml(Windowsの場合)またはlatest-mac.yml(macOSの場合))を配置する必要があります。
以下のファイルをリリースサーバーに配置します:
アプリケーションのインストーラーファイル:
Windows: .exeファイル(例:your-app-name-1.0.0.exe)
macOS: .dmgファイル(例:your-app-name-1.0.0.dmg)
Linux: .AppImageファイル(例:your-app-name-1.0.0.AppImage)
アップデートファイル:
Windows: -full.nupkgファイル(例:your-app-name-1.0.0-full.nupkg)および.exe.blockmapファイル(例:your-app-name-1.0.0.exe.blockmap)
macOS: -mac.zipファイル(例:your-app-name-1.0.0-mac.zip)
更新情報のメタデータファイル:
Windows: latest.ymlファイル
macOS: latest-mac.ymlファイル
これらのファイルは、electron-builderによってアプリケーションのビルド時に生成されます。生成されたファイルは、通常distディレクトリに格納されます。これらのファイルをリリースサーバーにアップロードし、package.jsonで指定されたURLにアクセスできるようにします。
リリースサーバーには、静的ファイルホスティングサービス(例:Amazon S3、GitHub Releases、Google Cloud Storage、Microsoft Azure Storageなど)や、独自のWebサーバー(例:Nginx、Apache)を使用することができます。重要なのは、アプリケーションが更新ファイルにアクセスできるように、リリースサーバーのURLを正しく設定することです。
この記事が気に入ったらサポートをしてみませんか?