メインコンテンツへ飛ぶ

autoUpdater

アプリを自動的に更新することができます。

プロセス: Main

こちらも参照: アプリケーションを更新する

autoUpdaterEventEmitter を継承しています。

プラットフォームに関する注意事項

現在、macOS と Windows にのみ対応しています。 Linux では、自動更新の組み込みサポートがないので、アプリ更新にはディストリビューションのパッケージマネージャーの使用を推奨しています。

さらに、各プラットフォームではいくつかの微妙な違いがあります。

macOS

macOSでは、autoUpdater モジュールは Squirrel.Mac で構築されているので、動作させるのに特別なセットアップ作業をする必要はありません。 サーバー側の要件については、サーバーサポート をお読みください。 アプリケーショントランスポートセキュリティ (ATS) が、更新処理の一部としてなされるすべてのリクエストに適用されることに注意してください。 アプリのplistに NSAllowsArbitraryLoads キーを追加することで、ATSを無効にすることができます。

注: macOS で自動更新を有効にするには、アプリ署名が必要です。 これは Squirrel.Mac の動作要件です。

Windows

Windows で autoUpdater を使用するには、アプリをユーザのマシンにインストールする必要があります。electron-winstallerElectron Forgegrunt-electron-installer のいずれかのパッケージで Windows インストーラを生成することを推奨します。

electron-winstaller または Electron Forge を使用する場合、初回実行時に アプリを更新しようとしないようにしてください (この issue の詳細情報 も参照)。 アプリのデスクトップショートカットを作成する electron-squirrel-startup も使用することを推奨します。

Squirrel で作成されたインストーラは、例えば、com.squirrel.slack.Slackcom.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 Event
  • releaseNotes string
  • releaseName string
  • releaseDate Date
  • updateURL string

更新プログラムがダウンロードされたときに発生します。

Windowsでは releaseName のみ利用可能です。

注: 必ずこのイベントを処理する必要はありません。 ダウンロードに成功した更新は、次回のアプリケーション起動時でも適用されます。

イベント: 'before-quit-for-update'

このイベントは、ユーザが呼び出した quitAndInstall() の後に発火されます。

この API が呼ばれた時、すべてのウィンドウが閉じられる前に before-quit イベントは発火されません。 結果として、プロセス終了時にウィンドウが閉じられる前にアクションを実行するために、before-quit をリッスンする場合は、このイベントも同様にリッスンする必要があります。

メソッド

autoUpdater オブジェクトには以下のメソッドがあります

autoUpdater.setFeedURL(options)

  • options Object
    • url string
    • headers Record<string, string\> (optional) macOS - HTTP request headers.
    • serverType string (任意) macOS - jsondefault のいずれかです。詳細は Squirrel.Mac README を参照してください。

url を設定して自動更新を初期化します。

autoUpdater.getFeedURL()

戻り値 string - 現在の更新フィード URL。

autoUpdater.checkForUpdates()

更新があるかどうかサーバーに問い合わせます。 この API を使用する前に setFeedURL を呼び出す必要があります。

注意: アップデート可能であれは、自動でダウンロードされます。 autoUpdater.checkForUpdates() を 2 回呼び出すと、更新データを 2 回ダウンロードすることになります。

autoUpdater.quitAndInstall()

ダウンロード後にアプリを再起動し、更新をインストールします。 update-downloaded が発生した後でしか呼び出さないでください。

autoUpdater.quitAndInstall() を呼ぶと、この中では最初にすべてのアプリケーションウィンドウを閉じ、すべてのウィンドウが閉じられた後に自動的に app.quit() を呼び出します。

注意: アップデートを適用するために必ずこの関数を呼ぶ必要はなく、ダウンロードに成功したアップデートは次回のアプリケーション起動時に必ず適用されます。