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

2024-04-16

我正在尝试在 Firefox 45 中安装扩展(Firefox 49 也会发生同样的情况),但 Firefox 不允许我这样做,这表明

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

我尝试安装它的方式很简单拖动 .xpi 文件我们的团队开发了 Firefox 窗口。这个扩展是基于MozRepl https://github.com/bard/mozrepl/,但有一些改进。

以前,我尝试安装它,但无法安装,因为它没有签名(Firefox 43 及以上版本中的扩展需要签名)。根据这篇文章,我按照每一步进行签名:签署 XPI https://developer.mozilla.org/en/docs/Signing_a_XPI。我几乎可以肯定我可以正确签名,但现在 Firefox 显示的错误有所不同:“无法安装此附加组件,因为它似乎已损坏。”

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

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

Here https://drive.google.com/file/d/0B7KHv4DP9WZiUjB2REZ3Wk1Hcm8/view?usp=sharing是 .xpi 文件的链接,以便您检查其内容。请注意,我尝试将文件 manifest.mf、zigbert.rsa 和 zigbert.sf 移到 META-INF 文件夹之外,但也不起作用。

有人在尝试安装附加组件时偶然发现过这样的错误吗?对可能发生的事情有什么想法吗?


The .xpi文件必须使用only“deflate”压缩或未压缩

Firefox 中的 zip 实现仅支持未压缩的文件或使用“Deflate”算法压缩的文件 https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIZipReader#extract()。您将需要创建.zip使用压缩方法“Deflate”而不是您当前使用的“LZMA”进行存档。如何执行此操作取决于您用于创建存档的工具。

就个人而言,我使用批处理文件/shell 脚本来创建.xpi文件,正如我在“的回答”中详细描述的那样Firefox 扩展 .xpi 文件结构:描述、内容、创建和安装 https://stackoverflow.com/a/31043045/3773011”。基础是我使用zip命令行工具,默认为“deflate”或未压缩。我用-1选项提供最快的压缩。火狐/Mozilla 使用.xpi文件既是为了对文件进行打包,也是为了提高文件的访问速度。重要的品质不是高压缩比,而是可以快速访问文件。除非 Firefox 不是 WebExtension 并且明确告知要解压该附加组件安装.rdf option <em:unpack>true</em:unpack> https://developer.mozilla.org/en-US/Add-ons/Install_Manifests#unpack(WebExtensions 没有安装.rdf文件),该附加组件将安装为.xpi文件和对附加组件的所有访问都将作为.xpi file.

注意:鉴于您的扩展包含.dll文件,您可能需要使用以下命令解压安装的附加组件<em:unpack>true</em:unpack> https://developer.mozilla.org/en-US/Add-ons/Install_Manifests#unpack.

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

虽然这不是您当前看到的错误,但一旦您解决了问题.xpi格式,您将遇到扩展程序被错误签名签名的问题。您使用自己的签名签署了您的扩展。它没有经过 Mozilla 签名。这是行不通的。它必须由 Mozilla 签名,而不是您自己。您提到您遵循了 MDN 页面中的说明签署 XPI https://developer.mozilla.org/en-US/docs/Signing_a_XPI?document_saved=true。但是,正如该页面顶部明确指出的,该页面上的说明已过时且不再有效。您应该点击注释中的链接进入该页面签署并分发您的附加组件 https://developer.mozilla.org/en-US/Add-ons/Distribution。页面顶部的注释指出:

注意:这些说明已过时。要使扩展在 Firefox 中工作,它必须是由 Mozilla 签名,而不是您自己签名. See 签署并分发您的附加组件 https://developer.mozilla.org/en-US/Add-ons/Distribution。 [强调已添加]

Stack Overflow 上还有很多解决签名问题的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尝试在 Firefox 中安装我的附加组件的 .xpi 文件时,附加组件“似乎已损坏” 的相关文章

随机推荐