web-dev-qa-db-ja.com

アドオンの.xpiファイルをFirefoxにインストールしようとすると、アドオンが「破損しているように見える」

Firefox 45に拡張機能をインストールしようとしています(Firefox 49でも同じです)が、Firefoxはそれを許可していません。

This add-on could not be installed because it appears to be corrupt. 

私がインストールしようとしている方法は、単に。xpiファイルをドラッグすることです私たちのチームがFirefoxウィンドウにドラッグします。この拡張機能は MozRepl に基づいていますが、いくつかの改良が加えられています。

以前は、インストールしようとしましたが、署名されていなかったため、できませんでした(43以降のFirefoxバージョンの拡張機能には署名が必要です)。この投稿によると、署名するためにすべての手順を実行しました: XPIに署名する 。正しく署名できると確信していますが、Firefoxが表示するエラーは異なります。「このアドオンは破損しているように見えるため、インストールできませんでした。」

enter image description here

.xpiファイルを正しく作成していないようですが、どの構造が正しいのかわかりません。さまざまなフォルダー構造を試しましたが、成功しませんでした。

また、ブラウザコンソールをチェックして、どのエラーがログインしているかを確認しましたが、本当に役立つとは思いませんでした。ここにあります:

enter image description here

ここ は、コンテンツを確認したい場合の.xpiファイルへのリンクです。 manifest.mf、zigbert.rsa、zigbert.sfの各ファイルをMETA-INFフォルダーの外に移動しようとしましたが、どちらも機能しませんでした。

アドオンをインストールしようとしたときに、誰かがこのようなエラーに遭遇しましたか?何が起こっているのでしょうか?

11
ndarriulat

。xpiファイルはonly「deflate」圧縮または非圧縮を使用する必要があります

Firefox内のZip実装は、 非圧縮ファイルまたは「Deflate」アルゴリズムで圧縮されたファイル のみをサポートします。現在使用している「LZMA」の代わりに圧縮方法「Deflate」を使用して、。Zipアーカイブを作成する必要があります。その方法は、アーカイブの作成に使用するツールによって異なります。

個人的には、バッチファイル/シェルスクリプトを使用して。xpiファイルを作成します。これは、「 Firefox extension .xpi file structure:description 、コンテンツ、作成、インストール "。基本は、デフォルトで「deflate」または非圧縮に設定されるZipコマンドラインツールを使用することです。 -1オプションを使用して、最速の圧縮を提供します。 Firefox/Mozillaは、。xpiファイルを使用してファイルをパッケージ化しますが、ファイルへのアクセス速度も向上させます。重要な品質は高い圧縮率ではありませんが、ファイルにすばやくアクセスできることです。 FirefoxがWebExtensionではなく、install.rdfオプションで明示的にアドオンをアンパックするように指示されていない限り、 <em:unpack>true</em:unpack> (WebExtensionsはinstall.rdfファイル)がある場合、アドオンは。xpiファイルとしてインストールされ、add-へのすべてのアクセスonは。xpiファイルになります。

注:拡張機能に。dllファイルが含まれている場合、 <em:unpack>true</em:unpack> を使用して、アドオンを解凍する必要があります。

間違った署名方法が使用されました。あなた自身ではなく、Mozillaが署名する必要があります。

現在表示されているエラーではありませんが、。xpi形式で問題を修正するとすぐに、間違った署名で署名された拡張機能に関する問題が発生します。独自の署名で拡張機能に署名しました。 Mozillaによって署名されていません。これは機能しません。あなた自身ではなく、Mozillaによって署名されている必要があります。MDNページの指示に従っていることを言及しました Signing an XPI 。ただし、そのページの上部に明確に記載されているように、そのページの指示は古く、機能していません。ページへのメモのリンクアドオンへの署名と配布をたどる必要があります。ページ上部のメモには次のように記載されています。

注:これらの手順は古くなっています。拡張機能がFirefoxで機能するには、自分ではなくMozillaによって署名されている必要がありますアドオンの署名と配布を参照してください。 [エンファシスの追加]

Stack Overflowには、署名の問題に対処するさまざまな質問もあります。

6
Makyen

他の回答で述べたように、未検証/未署名の拡張に対して発生します。

ただし、テストのために、未検証/未署名の拡張機能を使用したい場合があります。以下の未検証/未署名の拡張機能をインストールするハック/回避策として、Firefoxバージョン45で機能しました。

  1. Firefoxを起動してヒットする-about:config
  2. 「xpinstall.signatures.required」を検索します
  3. 行をダブルクリックするOR値をfalseに設定して閉じる

拡張機能のインストールを再試行すると、機能するはずです。

3
Rohit

この問題は、アドオン内のファイルではなく、アドオンを含むフォルダーを圧縮したときに発生しました。

マニフェストの親フォルダーを圧縮しないでください

Screenshot

たとえば、Windowsでは、Ctrlキーを押しながらマニフェストとその他のファイルまたはサブフォルダーをクリックします。右クリックしてSend to > Compressed Folderを選択します。

注:ブラウザコンソールのスクリーンショットから、これはこの場合の問題ではないことがわかりますが、それでもThis add-on could not be installed because it appears to be corruptエラーの一般的な問題です。

2
Andrew

明確に文書化されていないものがあると思います。私の経験を共有したいと思います。

  1. 拡張機能を開発し、すべてのファイルをZipped
  2. On your ownステップのHow to Distribute this Versionを選択し、.Zip[〜#〜] amo [〜#〜] にアップロードしました
  3. 次に、次のページで、ダウンロード可能な署名済み.xpiファイルが表示されます。私はそれをダウンロードし、「about:addons-> Install add-on from file」でインストールしようとしました
    1. この場合、corrupt add-onエラーが表示されます
  4. [email protected]から電子メールを受信した後、アドオンのページに移動し、そこにある.xpiファイルリンクをクリックして、うまくいきました!

enter image description here

1
Mert Buran