ETERNITY DESIGN BLOG

ElectronアプリのWindowsインストーラー

これをWindows環境に入れるのが早い。
別にこれしか方法がないわけではない。

以下な感じでJS用意してnpm runなどすればいい。


var electronInstaller = require('electron-winstaller');

resultPromise = electronInstaller.createWindowsInstaller({
	appDirectory: './dist/app-win32-x64',
	outputDirectory: './installer/' + config.version + '/',
	loadingGif: __dirname + '/assets/loading.gif',
	authors: 'My App Inc.',
	description: 'My App',
	exe: 'myApp.exe',
	title: 'My App',
	// certificateFile: __dirname + '/assets/cert.pfx',
	// certificatePassword: 'cert_password',
	iconUrl: 'http://www.---.com/app-icon-win.ico',
	setupIcon: __dirname + '/assets/app-icon-win.ico',
	setupExe: 'myApp-Setup-' + config.version + '.exe',
	noMsi: true
});

resultPromise.then(() => console.log("It worked!"), (e) => console.log(`No dice: ${e.message}`));

オプションに関していくつか注意点とか解説。

description

タスクマネージャーのアプリ名に使われるのでdescriptionじゃない点に注意。

iconUrl

コンパネのアプリと機能などに利用されるアイコン。
http://から始まるパスになる、どっかサーバーに置かないといけない。

certificateFile, certificatePassword

適当にどこかで証明書を購入し、証明書をPCに適用する(おおざっぱにいうと)そのPCからエクスポート、またはバックアップしたp12形式のファイル(pfxファイルとか)をcertificateFileに指定する。
エクスポート時に設定したパスワードをcertificatePasswordに指定する。

signWithParams

タイムスタンプを適用したいなどの場合は上記certificateFile, certificatePasswordは使えないので、ここで証明書、パスワード含めてコマンドをここで指定する。
利用しているツールはSignTool.exeなので、リンク先のオプションが利用できる。

noMsi

通常はtrueというか未指定でOK。
ここをfalse指定することでMSIファイルが生成される。
これはMachineWideInstallerというもので、AdministratorなどでこのMSIでインストールしておくと、
その後にWindowsで作成されるユーザーに自動でアプリがインストールされるというもの。

Squirrel関連イベントのデバッグなんかいい方法ないものですかね。

ABOUT ME

名古屋を中心に、フリーランスでホームページ制作してます。 デザイン・サイト制作・WordPress案件・Flash制作、JavaScript(jQuery)と幅広く対応可能です。 案件のご依頼・ご相談はCONTACTよりご連絡ください。

CATEGORIES

ARCHIVES

TAGS