autoUpdater
アプリを自動的に更新することができます。
Process: Main
See also: A detailed guide about how to implement updates in your application.
autoUpdater
is an EventEmitter.
プラットフォームに関する注意事項
現在、macOS と Windows にのみ対応しています。 Linux では、自動更新の組み込みサポートがないので、アプリ更新にはディストリビューションのパッケージマネージャーの使用を推奨しています。
さらに、各プラットフォームではいくつかの微妙な違いがあります。
macOS
macOSでは、autoUpdater
モジュールは Squirrel.Mac で構築されているので、動作させるのに特別なセットアップ作業をする必要はありません。 サーバー側の要件については、サーバーサポート をお読みください。 注意として、App Transport Security (ATS) はアップデート処理の過程で行われたすべてのリクエストに適用されます。 アプリのplistに NSAllowsArbitraryLoads
キーを追加することで、ATSを無効にすることができます。
注: macOS で自動更新を有効にするには、アプリ署名が必要です。 これは Squirrel.Mac
の動作要件です。
Windows
On Windows, you have to install your app into a user's machine before you can use the autoUpdater
, so it is recommended that you use electron-winstaller or Electron Forge's Squirrel.Windows maker to generate a Windows installer.
Apps built with Squirrel.Windows will trigger custom launch events that must be handled by your Electron application to ensure proper setup and teardown.
Squirrel.Windows apps will launch with the --squirrel-firstrun
argument immediately after installation. During this time, Squirrel.Windows will obtain a file lock on your app, and autoUpdater
requests will fail until the lock is released. In practice, this means that you won't be able to check for updates on first launch for the first few seconds. You can work around this by not checking for updates when process.argv
contains the --squirrel-firstrun
flag or by setting a 10-second timeout on your update checks (see electron/electron#7155 for more information).
The installer generated with Squirrel.Windows will create a shortcut icon with an Application User Model ID in the format of com.squirrel.PACKAGE_ID.YOUR_EXE_WITHOUT_DOT_EXE
, examples are com.squirrel.slack.Slack
and com.squirrel.code.Code
. app.setAppUserModelId
APIでアプリに対して同じIDを使うようにしてください。そうでないと、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()
を呼び出します。
注意: アップデートを適用するために必ずこの関数を呼ぶ必要はなく、ダウンロードに成功したアップデートは次回のアプリケーション起動時に必ず適用されます。