autoUpdater
アプリを自動的に更新することができます。
プロセス: Main
こちらも参照: アプリケーションを更新する
autoUpdater
は EventEmitter を継承しています。
プラットフォームに関する注意事項
現在、macOS と Windows にのみ対応しています。 Linux では、自動更新の組み込みサポートがないので、アプリ更新にはディストリビューションのパッケージマネージャーの使用を推奨しています。
さらに、各プラットフォームではいくつかの微妙な違いがあります。
macOS
macOSでは、autoUpdater
モジュールは Squirrel.Mac で構築されているので、動作させるのに特別なセットアップ作業をする必要はありません。 サーバー側の要件については、サーバーサポート をお読みください。 アプリケーショントランスポートセキュリティ (ATS) が、更新処理の一部としてなされるすべてのリクエストに適用されることに注意してください。 アプリのplistに NSAllowsArbitraryLoads
キーを追加することで、ATSを無効にすることができます。
注: macOS で自動更新を有効にするには、アプリ署名が必要です。 これは Squirrel.Mac
の動作要件です。
Windows
Windows で autoUpdater
を使用するには、アプリをユーザのマシンにインストールする必要があります。electron-winstaller、Electron Forge、grunt-electron-installer のいずれかのパッケージで Windows インストーラを生成することを推奨します。
electron-winstaller または Electron Forge を使用する場合、初回実行時に アプリを更新しようとしないようにしてください (この issue の詳細情報 も参照)。 アプリのデスクトップショートカットを作成する electron-squirrel-startup も使用することを推奨します。
Squirrel で作成されたインストーラは、例えば、com.squirrel.slack.Slack
や com.squirrel.code.Code
といったcom.squirrel.PACKAGE_ID.YOUR_EXE_WITHOUT_DOT_EXE
という形式の アプリケーションユーザ ID を持つショートカットアイコンを作成します。 app.setAppUserModelId
APIでアプリに対して同じIDを使うようにしてください。そうでないと、Windowsはタスクバーにアプリを正しくピン留めすることができません。
Squirrel.Mac と同様に、Windows でも S3 やその他の静的ファイルホストで更新プログラムをホストできます。 Squirrel.Windows の仕組みの詳細については、Squirrel.Windows のドキュメントをお読みください。
イベント
autoUpdater
オブジェクトは以下のイベントを発生させます。
イベント: 'error'
戻り値:
error
Error
更新中にエラーがあるときに出力されます。
イベント: 'checking-for-update'
更新が始まったかどうかをチェックするときに放出されます。
イベント: 'update-available'
利用可能な更新がある場合に発生します。 更新は自動ダウンロードされます。
イベント: 'update-not-available'
利用可能な更新がない場合に出力されます。
イベント: 'update-downloaded'
戻り値:
event
EventreleaseNotes
stringreleaseName
stringreleaseDate
DateupdateURL
string
更新プログラムがダウンロードされたときに発生します。
Windowsでは releaseName
のみ利用可能です。
注: 必ずこのイベントを処理する必要はありません。 ダウンロードに成功した更新は、次回のアプリケーション起動時でも適用されます。
イベント: 'before-quit-for-update'
このイベントは、ユーザが呼び出した quitAndInstall()
の後に発火されます。
この API が呼ばれた時、すべてのウィンドウが閉じられる前に before-quit
イベントは発火されません。 結果として、プロセス終了時にウィンドウが閉じられる前にアクションを実行するために、before-quit
をリッスンする場合は、このイベントも同様にリッスンする必要があります。
メソッド
autoUpdater
オブジェクトには以下のメソッドがあります
autoUpdater.setFeedURL(options)
url
を設定して自動更新を初期化します。
autoUpdater.getFeedURL()
戻り値 string
- 現在の更新フィード URL。
autoUpdater.checkForUpdates()
更新があるかどうかサーバーに問い合わせます。 この API を使用する前に setFeedURL
を呼び出す必要があります。
注意: アップデート可能であれは、自動でダウンロードされます。 autoUpdater.checkForUpdates()
を 2 回呼び出すと、更新データを 2 回ダウンロードすることになります。
autoUpdater.quitAndInstall()
ダウンロード後にアプリを再起動し、更新をインストールします。 update-downloaded
が発生した後でしか呼び出さないでください。
autoUpdater.quitAndInstall()
を呼ぶと、この中では最初にすべてのアプリケーションウィンドウを閉じ、すべてのウィンドウが閉じられた後に自動的に app.quit()
を呼び出します。
注意: アップデートを適用するために必ずこの関数を呼ぶ必要はなく、ダウンロードに成功したアップデートは次回のアプリケーション起動時に必ず適用されます。