Firefox 由Mozilla“;似乎已损坏”;尝试在本地安装时

Firefox 由Mozilla“;似乎已损坏”;尝试在本地安装时,firefox,firefox-addon,Firefox,Firefox Addon,我创建了一个简单的Firefox扩展(使用WebExtensions),我想每天在Firefox中使用它,而不必在addons.mozilla.org(AMO)上发布它。我可以通过转到关于:调试,单击“加载临时加载项”按钮并打开manifest.json文件,临时安装它并验证它是否工作 由于我希望在每次重新启动Firefox时不必经历该过程就可以使用该扩展,因此我将其打包到一个XPI文件中,并尝试将其作为常规本地扩展进行安装。我将两个文件(manifest.json、content_script

我创建了一个简单的Firefox扩展(使用WebExtensions),我想每天在Firefox中使用它,而不必在addons.mozilla.org(AMO)上发布它。我可以通过转到
关于:调试
,单击“加载临时加载项”按钮并打开manifest.json文件,临时安装它并验证它是否工作

由于我希望在每次重新启动Firefox时不必经历该过程就可以使用该扩展,因此我将其打包到一个XPI文件中,并尝试将其作为常规本地扩展进行安装。我将两个文件(manifest.json、content_script.js)和一个目录(icons/)归档到一个ZIP文件中,并将其重命名为test.xpi。在
about:addons
,我单击了gear图标,选择了“从文件安装附加组件”,并选择了test.xpi文件。但是Firefox总是给我这个错误

“无法安装此加载项,因为它似乎已损坏”

在创建ZIP文件时,我小心地将清单文件保留在归档文件的顶部,并且。我尝试在本地安装一个XPI文件,甚至安装了Cygwin,以便访问说明中提到的“zip”实用程序,但在任何Cygwin文件夹中都找不到该实用程序

为了确定问题是否是缺少Mozilla签名,我将其提交给AMO(addons.Mozilla.org)进行签名。AMO对它进行了签名,并向我提供了一个新的XPI文件,我认为该文件在签名后就可以安装了。但是这个正式创建并签名的XPI文件仍然得到了一个错误,即它已损坏


有人知道我该如何找出造成这种情况的原因吗?

我能够解决这个问题:事实证明,清单需要一个“id”属性,即使声明不是这样:“但是,从Firefox48,您可以开发、调试、发布和更新扩展,而不需要设置明确的id。”“您何时需要加载项ID?如果您是从[sic]XPI文件加载加载项,则不使用about:debugging and it's not signed[my XPI file was signed]“

如果无法访问实际的.xpi文件,我们除了猜测问题可能是什么以外,没有其他方法可以做任何事情。您可能希望查看我对:,这可能有助于使用其他方法。您还应该查看我在此处找到了一个如何添加此内容的示例:。类似以下json的内容必须添加到manifest.json文件的顶层:“applications”:{“gecko”:{“id”:”addon@example.com“,“strict_min_version”:“42.0”}感谢您的解决方案!FWIW,插件服务器团队对
id
的入侵性也同样感到惊讶:(这条评论和一些后续评论)。