Firefoxで改造アドオンのインストール失敗


無駄な時間を過ごしたので忘れないように書き留めておく

とあるアドオンの改造を行ったがインストールが出来ない
基本的には公式からアドオンのxpiをダウンロードしてからzipとして解凍し
内部のファイルを改変、再びzipに圧縮してからxpiに戻してインストール
が手順なのだが問題発生

「このアドオンは壊れているため、インストールできませんでした」 と表示されてしまう
英語表記では"this add-on could not be installed because it appears to be corrupt"
アドオンのデバッグから一時的なアドオンとして読み込むと問題なくインストールできる

これでよくあるパターンは圧縮時のミスで、解凍時のフォルダごと圧縮してしまうとアウト
アーカイバで開いた時にmanifest.jsonが最初に表示されればオーケー
これを確認したが問題はなかった

次に考えたのはファイル改変時のミスで、エンコードや内容を見直した
UTF-8で出力されておりタブ文字をスペースに直したり、別のエディタを入れて保存してみたりもした
それでも上記のエラーでインストールが出来ない

署名がないアドオンをインストールするにはFirefox Developer Editionでないといけないらしいが
エラー内容からして違うのではないかと思いつつインストール
どちらにしろ入れる必要はあったが、結局同じエラー

他にもzip圧縮率を変えてみたりして睡眠時間を削り
何時間も格闘した後にMDNのmanifest.jsonのページを見ていると

  "applications": {
    "gecko": {
      "id": "addon@example.com",
      "strict_min_version": "42.0"
    }
  },

この項目を見て思い出した
前にWebExtensionのアドオンを作った時にも書いたと

 Firefoxでは認証されていないアドオンは「id」を指定しなければならない

ここに適当な文字列(hoge@hogehoge.comとか)を入れて圧縮し読み込んでみるとあっさりインストール完了
 何故この項目が書かれてなかったかというと、元のアドオンが既に認証済みだったためと思われる

「壊れている」という表示に踊らされて無駄なことをした
認証情報がありませんとか書いてくれれば確認しただろうに、おのれFirefox

コメント

このブログの人気の投稿

base64で文字列化された画像のリサイズ用ツール

PlayOnLinuxでインストールリストが表示されない場合の対処法