附加组件"似乎已损坏"尝试在Firefox中安装我的附加组件.xpi文件时

时间:2016-10-04 13:51:48

标签: javascript firefox firefox-addon xpi

我正在尝试在Firefox 45中安装扩展程序(与Firefox 49相同),但Firefox不允许我这样做,表明

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

我尝试安装它的方法只是通过拖动我们团队开发的.xpi文件进入Firefox窗口。此扩展程序基于MozRepl,但有一些改进。

以前,我尝试安装它,但我没有签名(因为43版以来的Firefox版本中的扩展需要签名)。根据这篇文章:Signing a XPI,我按照每一步进行签名。我几乎可以肯定我可以正确签名,但现在Firefox显示的错误是不同的:"无法安装此附加组件,因为它似乎已损坏。"

enter image description here

似乎我没有正确创建.xpi文件,但我不确定它应该具有哪个正确的结构。我尝试了不同的文件夹结构,但没有成功。

另外,我检查了浏览器控制台以查看记录了哪些错误,但我没有发现它真的有用。这是:

enter image description here

Here是指向.xpi文件的链接,以防您想要检查其内容。请注意,我尝试将文件manifest.mf,zigbert.rsa和zigbert.sf移动到META-INF文件夹之外,但它也没有工作。

在尝试安装附加组件时,有没有人偶然发现了这样的错误?关于可能发生的事情的任何想法?

4 个答案:

答案 0 :(得分:5)

.xpi 文件必须仅使用 " deflate"压缩或未压缩

Firefox中的zip实现仅支持uncompressed files or files compressed with the "Deflate" algorithm。您需要使用压缩方法" Deflate"创建 .zip 存档。而不是" LZMA"您目前正在使用的。如何操作取决于您用于创建存档的工具。

就个人而言,我使用批处理文件/ shell脚本来创建 .xpi 文件,正如我在对#34; Firefox extension .xpi file structure: description, contents, creation, and installation&#34;的回答中详细描述的那样。基础是我使用zip命令行工具,默认为&#34; deflate&#34;或未压缩的。我使用-1选项提供最快的压缩。 Firefox / Mozilla使用 .xpi 文件来打包文件,但也提高了文件访问速度。重要的质量不是高压缩率,而是可以快速访问文件。除非Firefox不是WebExtension并明确告知通过 install.rdf 选项<em:unpack>true</em:unpack>解压缩加载项(WebExtensions没有 install.rdf 文件),加载项将作为 .xpi 文件安装,对加载项的所有访问都将作为 .xpi 文件。

注意:鉴于您的扩展程序包含 .dll 文件,您可能需要使用<em:unpack>true</em:unpack>解压缩安装的加载项。

使用了错误的签名方法。它必须由Mozilla签名,而不是您自己。

虽然这不是您当前看到的错误,但只要您使用 .xpi 格式解决问题,就会遇到错误签名对您的扩展程序进行签名的问题。您使用自己的签名签署了扩展程序。它没有被Mozilla签名。这不行。它必须由Mozilla签名,而不是您自己。您提到您按照MDN页面Signing an XPI中的说明进行操作。但是,正如该页面顶部明确指出的那样,该页面上的说明已过时,不再有效。您应该按照 Signing and distributing your add-on 页面注释中的链接进行操作。页面顶部的注释说明:

  

注意:这些说明已过时。要在Firefox中使用扩展程序,必须由Mozilla签名,而不是由您自己签名。请参阅 Signing and distributing your add-on 。 [强调补充]

Stack Overflow上还有各种各样的问题可以解决签名问题。

答案 1 :(得分:2)

如同在其他答案中所述,它发生在未经验证/未签名的扩展中。

但有时候为了测试你可能想要使用未经验证/未签名的扩展。 作为安装未验证/未签名扩展的黑客/解决方法,以下是在Firefox 45版上为我工作的:

  1. 启动Firefox并点击 - about:config
  2. 搜索“xpinstall.signatures.required”
  3. 双击行或将值设置为false并关闭
  4. 现在重试安装扩展程序,它应该可以正常工作。

答案 2 :(得分:2)

我压缩包含插件的文件夹而不是其中的文件时遇到了这个问题。

不要压缩清单的父文件夹

Screenshot

例如,在Windows上,按住CTRL键并单击清单和任何其他文件或子文件夹; 右键单击并选择Send to > Compressed Folder,您就可以使用了。

注意:在浏览器控制台屏幕截图中,我们可以看出这不是问题,但即使如此,这也是This add-on could not be installed because it appears to be corrupt错误的常见问题。

答案 3 :(得分:1)

我认为有些内容没有明确记录,我想分享我的经验。

  1. 开发了我的扩展程序并zip创建了所有文件
  2. On your own步骤选择How to Distribute this Version并将.zip上传至AMO
  3. 然后,在下一页上,我看到一个可以下载的签名.xpi文件。我下载了它并尝试通过&#34; about:addons - &gt;进行安装。从文件&#34;安装加载项
    1. 我遇到corrupt add-on错误
  4. 收到来自amo-editors@mozilla.org的电子邮件后,我转到了我的附加组件页面,点击了.xpi文件链接并它有效! < / LI>

    enter image description here