web-dev-qa-db-fra.com

Le module complémentaire "semble corrompu" lorsque vous essayez d'installer le fichier .xpi de mon module complémentaire dans Firefox

J'essaie d'installer une extension dans Firefox 45 (la même chose se produit avec Firefox 49), mais Firefox ne me permet pas de le faire, indiquant que

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

La façon dont j'essaie de l'installer est simplement de faire glisser le fichier .xpi développé par notre équipe, dans la fenêtre Firefox. Cette extension est basée sur MozRepl , mais avec quelques améliorations.

Auparavant, j'essayais de l'installer mais je ne pouvais pas car il n'était pas signé (les extensions dans les versions de Firefox à partir de 43 nécessitent la signature). J'ai suivi chaque étape afin de le signer, selon cet article: Signing a XPI . Je suis presque certain de pouvoir le signer correctement, mais maintenant l'erreur affichée par Firefox est différente: "Ce module complémentaire n'a pas pu être installé car il semble être corrompu."

enter image description here

Il semble que je ne crée pas correctement le fichier .xpi, mais je ne sais pas quelle est la structure correcte qu'il devrait avoir. J'ai essayé différentes structures de dossiers, mais sans succès.

De plus, j'ai vérifié la console du navigateur pour voir quelle erreur est connectée, mais je ne l'ai pas trouvée vraiment utile. C'est ici:

enter image description here

Ici est un lien vers le fichier .xpi au cas où vous voudriez vérifier son contenu. Notez que j'ai essayé de déplacer les fichiers manifest.mf, zigbert.rsa et zigbert.sf en dehors du dossier META-INF, mais cela n'a pas fonctionné non plus.

Quelqu'un est-il tombé sur une erreur comme celle-ci en essayant d'installer un module complémentaire? Des idées de ce qui se passe peut-être?

11
ndarriulat

Le fichier . Xpi doit utiliser la compression uniquement "dégonfler" ou non compressé

L'implémentation Zip dans Firefox ne prend en charge que fichiers non compressés ou fichiers compressés avec l'algorithme "Deflate" . Vous devrez créer l'archive . Zip en utilisant la méthode de compression "Deflate" au lieu de "LZMA" que vous utilisez actuellement. La procédure dépendra des outils que vous utilisez pour créer votre archive.

Personnellement, j'utilise un fichier batch/script Shell pour créer le fichier . Xpi comme je le décris en détail dans ma réponse à " Structure du fichier .xpi de l'extension Firefox: description, contenu, création et installation ". Les bases sont que j'utilise l'outil de ligne de commande Zip qui est par défaut "dégonfler" ou non compressé. Je utilise le -1 option pour fournir la compression la plus rapide. Firefox/Mozilla utilise les fichiers . Xpi à la fois pour empaqueter les fichiers, mais aussi pour augmenter la vitesse d'accès aux fichiers. La qualité importante n'est pas un taux de compression élevé, mais l'accès rapide aux fichiers. À moins que Firefox ne soit pas une WebExtension et qu'il lui soit explicitement demandé de décompresser le module complémentaire par l'option install.rdf<em:unpack>true</em:unpack> (les extensions Web n'ont pas de fichiers install.rdf), le module complémentaire sera installé en tant que fichier . Xpi et tous les accès au module complémentaire sera le fichier . xpi.

Remarque: Étant donné que votre extension contient des fichiers . Dll, vous devrez peut-être installer votre module complémentaire décompressé à l'aide de <em:unpack>true</em:unpack> .

Mauvaise méthode de signature utilisée. Il doit être signé par Mozilla, pas par vous-même.

Bien que ce ne soit pas l'erreur que vous voyez actuellement, dès que vous résolvez le problème avec votre format . Xpi, vous rencontrerez un problème avec votre extension signée par la mauvaise signature. Vous avez signé votre extension avec votre propre signature. Il n'a pas été signé par Mozilla. Cela ne fonctionnera pas. Il doit être signé par Mozilla, pas par vous-même. Vous avez mentionné que vous avez suivi les instructions de la page MDN Signing an XPI . Cependant, comme il est clairement indiqué en haut de cette page, les instructions sur cette page sont obsolètes et ne fonctionnent plus. Vous devriez avoir suivi le lien dans la note de la page Signature et distribution de votre module complémentaire. La note en haut de la page indique:

Remarque: ces instructions sont obsolètes. Pour qu'une extension fonctionne dans Firefox, elle doit être signée par Mozilla, pas par vous-même . Voir Signature et distribution de votre module complémentaire. [Italiques ajoutés]

Il existe également une variété de questions ici sur Stack Overflow qui traitent du problème de signature.

6
Makyen

Comme indiqué dans d'autres réponses, cela se produit pour une extension non vérifiée/non signée.

Mais parfois, pour les tests, vous pouvez utiliser une extension non vérifiée/non signée. Comme hack/solution de contournement pour installer des extensions non vérifiées/non signées, cela a fonctionné pour moi sur Firefox version 45:

  1. Lancez Firefox et cliquez sur - about: config
  2. Recherchez 'xpinstall.signatures.required'
  3. Soit double-cliquez sur la ligne OR définissez la valeur sur false et fermez

Réessayez maintenant d'installer l'extension et cela devrait fonctionner.

3
Rohit

J'ai eu ce problème lorsque j'ai compressé le dossier contenant mon addon plutôt que les fichiers qu'il contient.

Ne compressez pas le dossier parent de votre manifeste

Screenshot

Par exemple, sur Windows CTRL + Cliquez sur votre manifeste et tout autre fichier ou sous-dossier; cliquez avec le bouton droit et sélectionnez Send to > Compressed Folder et vous devriez être prêt à partir.

Remarque: à partir de la capture d'écran de la console du navigateur, nous pouvons dire que ce n'est pas le problème dans ce cas, mais même ainsi, c'est un problème courant pour le This add-on could not be installed because it appears to be corrupt erreur.

2
Andrew

Je pense qu'il y a quelque chose qui n'est pas clairement documenté, je voudrais partager mon expérience.

  1. Développer mon extension et Zipped tous les fichiers
  2. On your own Sélectionné pour l'étape How to Distribute this Version Et téléchargé .Zip Sur AMO
  3. Ensuite, sur la page suivante, je vois un fichier signé .xpi Disponible en téléchargement. Je l'ai téléchargé et j'ai essayé de l'installer via "about: addons -> Install Add-on from file"
    1. J'obtiens l'erreur corrupt add-on Dans ce cas
  4. Après avoir reçu un e-mail de [email protected], Je suis allé sur la page de mon module complémentaire et j'ai cliqué sur le lien du fichier .xpi Et cela a fonctionné!

enter image description here

1
Mert Buran