<2018年一人なんでもアドベントカレンダー1日目>
#はじめに
Firefoxの拡張機能を公開したい場合、ストアに申請して公開するのが通常の方法ですが、公開条件を満たす必要があります。
例えば、社内用アプリケーションを使って社員のみが使うような拡張機能の場合、用途と利用者が限定すぎるためにリジェクトされたりします。
そのときに「自分で公開(self hosted)」という方法があります。
#updates.jsonを用意
まずはアップデート情報を記述するupdates.json
を用意します。
あとで説明しますが、拡張機能のmanifest.json
内にこのupdates.json
ファイルのURLを記述することで、拡張機能は更新の有無を知ることができるようになります。
{
"addons": {
"<拡張機能のUUID>": {
"updates": [
{
"version": "1.0.0.0",
"update_link": "https://server.com/myextension.xpi"
},
{
"version": "1.0.1.0",
"update_link": "https://server.com/myextension.xpi"
}
]
}
}
}
version
に拡張機能のバージョン番号を、update_link
にあとで置くことになるxpiファイルのURLを指定しておきます。
ここでは仮にhttps://server.com/myextension.xpi
に置いたとします。
#manifest.jsonをサーバーに置く
ブラウザからhttpsでアクセスできればどこでも良いです。
ここでは仮にhttps://server.com/updates.json
に置いたとしましょう。
#manifest.jsonにupdates.jsonのURLを追記
抜粋
"applications": {
"gecko": {
"id": "<拡張機能のUUID>",
"update_url":"https://server.com/updates.json",
"strict_min_version": "42.0"
}
},
applications
プロパティの中にupdate_url
プロパティを追加し、先程のupdates.jsonファイルのURLをhttps://
から記述します。
#開発者センターで拡張機能に署名
公開するには拡張機能に署名を施す必要があります。
開発者センターにログインし、「新しいアドオンを登録」をクリックします。
配布手段に「自分自身で。」を選択して「続ける」をクリックします。
拡張機能の.xpiファイルをアップロードして「アドオンを署名」をクリックします。
これで署名が完了しました。
ダウンロードボタンを押してxpiファイルをダウンロードします。
#xpiファイルをサーバーに置く
それをupdates.json
に記述したxpiファイルのURLと同じ場所に置きます。
ここではhttps://server.com/myextension.xpi
ですね。
これで公開されました。
#初回インストール
xpiファイルのURLにアクセスすればインストールされます。
#拡張機能の更新
拡張機能を更新するときは、プログラム的な変更を行った後に以下の作業を行います。
- manifest.jsonのバージョンを変更
- updates.jsonに新しいバージョンの情報を追加する
- 開発者センターで拡張機能に署名
- xpiファイルとupdates.jsonをサーバーに置く
2のバージョン情報の追加は以下のようにします。
例えば新しいバージョン1.0.1.1
を追加します。
{
"addons": {
"<拡張機能のUUID>": {
"updates": [
{
"version": "1.0.0.0",
"update_link": "https://server.com/myextension.xpi"
},
{
"version": "1.0.1.0",
"update_link": "https://server.com/myextension.xpi"
},
{
"version": "1.0.1.1",
"update_link": "https://server.com/myextension.xpi"
}
]
}
}
}