LoginSignup
11
10

More than 5 years have passed since last update.

Firefoxアドオンを自分で公開(self hosted)する方法

Last updated at Posted at 2018-12-01

<2018年一人なんでもアドベントカレンダー1日目>

はじめに

Firefoxの拡張機能を公開したい場合、ストアに申請して公開するのが通常の方法ですが、公開条件を満たす必要があります。
例えば、社内用アプリケーションを使って社員のみが使うような拡張機能の場合、用途と利用者が限定すぎるためにリジェクトされたりします。
そのときに「自分で公開(self hosted)」という方法があります。

updates.jsonを用意

まずはアップデート情報を記述するupdates.jsonを用意します。
あとで説明しますが、拡張機能のmanifest.json内にこのupdates.jsonファイルのURLを記述することで、拡張機能は更新の有無を知ることができるようになります。

updates.json
{
  "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を追記

manifest.json
抜粋
 "applications": {
    "gecko": {
      "id": "<拡張機能のUUID>",
      "update_url":"https://server.com/updates.json",
      "strict_min_version": "42.0"
    }
  },

applicationsプロパティの中にupdate_urlプロパティを追加し、先程のupdates.jsonファイルのURLをhttps://から記述します。

開発者センターで拡張機能に署名

公開するには拡張機能に署名を施す必要があります。
開発者センターにログインし、「新しいアドオンを登録」をクリックします。
image.png

配布手段に「自分自身で。」を選択して「続ける」をクリックします。
image.png

拡張機能の.xpiファイルをアップロードして「アドオンを署名」をクリックします。

image.png

ここは「いいえ」を選択して「続ける」をクリックします。
image.png

これで署名が完了しました。
ダウンロードボタンを押してxpiファイルをダウンロードします。

lkasdfjalskdfja.png

xpiファイルをサーバーに置く

それをupdates.jsonに記述したxpiファイルのURLと同じ場所に置きます。
ここではhttps://server.com/myextension.xpiですね。

これで公開されました。

初回インストール

xpiファイルのURLにアクセスすればインストールされます。

拡張機能の更新

拡張機能を更新するときは、プログラム的な変更を行った後に以下の作業を行います。

  1. manifest.jsonのバージョンを変更
  2. updates.jsonに新しいバージョンの情報を追加する
  3. 開発者センターで拡張機能に署名
  4. xpiファイルとupdates.jsonをサーバーに置く

2のバージョン情報の追加は以下のようにします。
例えば新しいバージョン1.0.1.1を追加します。

updates.json
{
  "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"
        }
      ]
    }
  }
}
11
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
10