# autoUpdater

このモジュールは、`Squirrel`オートアップデートフレームワークのインターフェイスを提供します。

## プラットフォーム留意点

`autoUpdater`は、異なるプラットフォーム用に統一したAPIを提供していますが、それぞれのプラットフォーム上で、まだ多少の差があります。

### macOS

macOSでは、 `autoUpdater` モジュールは、[Squirrel.Mac][squirrel-mac]上に構築されていて、動作させるのに特別な設定が不要であることを意味します。サーバーサイドの要件は、[Server Support][server-support]を読んでください。

### Windows

Windowsでは、auto-updaterを使う前に、ユーザーのPCにアプリをインストールする必要があるので、Windows インストーラーを生成するために[grunt-electron-installer][installer]モジュールを使用することをお勧めします。

Squirrelで生成されたインストーラーは、`com.squirrel.PACKAGE_ID.YOUR_EXE_WITHOUT_DOT_EXE`のフォーマット(例えば、`com.squirrel.slack.Slack` と `com.squirrel.code.Code`)で[Application User Model ID][app-user-model-id]とショートカットアイコンを作成します。`app.setAppUserModelId`APIで同じIDを使う必要があります。同じIDでないと、Windowsはタスクバーに適切にピン止めすることができません。

サーバーサイドのセットアップは、macOSと異なります。詳細は、[Squirrel.Windows][squirrel-windows] を参照してください。

### Linux

Linuxでは、auot-updater用のサポートがビルトインされていないので、アプリをアップデートするためにディストリビューションのパッケージマネジャーを使用することをお勧めします。

## イベント

`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` のみ提供されます。

## メソッド

`autoUpdater` オブジェクトは次のメソッドを持っています。

### `autoUpdater.setFeedURL(url)`

* `url` String

 `url`を設定し、自動アップデートを初期化します。 `url`は一度設定すると変更できません。

### `autoUpdater.checkForUpdates()`

アップデートがあるかどうかサーバーに問い合わせます。APIを使う前に、`setFeedURL`をコールしなければなりません。

### `autoUpdater.quitAndInstall()`

ダウンロード後、アプリを再起動して、アップデートをインストールします。`update-downloaded`が出力された後のみ、コールすべきです。

[squirrel-mac]: https://github.com/Squirrel/Squirrel.Mac
[server-support]: https://github.com/Squirrel/Squirrel.Mac#server-support
[squirrel-windows]: https://github.com/Squirrel/Squirrel.Windows
[installer]: https://github.com/atom/grunt-electron-installer
[app-user-model-id]: https://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx