我有自己的浏览器扩展程序,可以自定义一些个人网站。在Chrome中运行良好,但在Firefox中不起作用。
与Chrome不同,Firefox似乎不能安装未打包的扩展或附加组件。只有在调试模式下,我才能执行Load Temporary Add-on
,选择包含我的扩展的文件夹,这一切都正常。除了这只是临时的。
当我将文件打包到.zip文件夹中(而不是在子目录或其他文件夹中,归档文件直接包含文件)并将其重命名为.xpi,然后选择Install Add-on from file
并选择my .xpi时,它说:
无法安装从此站点下载的加载项,因为它似乎已损坏。
在故障排除时,我做了一个最小的虚拟扩展,它不做任何事情,只包含一个manifest.json
和dummy.js
文件。然后在该目录下使用7z a -tzip test.xpi
从命令行打包,这将创建包含这两个文件的zip文件,名为test.xpi
。在Firefox中加载该扩展给予上面的错误。
这里是我的manifest.json:
{
"manifest_version": 2,
"name": "Test Extension",
"version": "1.0",
"description": "Dummy Text Extension",
"content_scripts": [
{
"matches": [ "*://*/" ],
"js": ["dummy.js"]
}
]
}
dummy.js的内容是:
// this file is intentionally left blank
同样:在Chrome中运行良好,在Firefox中以调试模式作为临时加载项加载时运行良好(即通过加载文件,在打开的对话框中我选择manifest.json文件)。但是加载.xpi以永久安装此扩展会导致“似乎已损坏”错误。
仅供参考:我在macOS 10.15.5上使用最新版本的Chrome和Firefox。
出于测试的目的,这里是我创建的确切的test.xpi文件,但是如上所述手动打包它将给予相同的结果。
3条答案
按热度按时间ej83mcc01#
前几天也遇到了同样的问题。
要永久安装我的个人xpi(在Firefox for Linux 77.0.1下):
about:config
,xpinstall.signatures.required = false
(不幸的是,这将需要留下来,因为签名似乎在每次浏览器启动时都要验证)例如:
希望这有帮助!
w41d8nur2#
您是否尝试了web-ext工具并签署了您的加载项?您可以使用Web-ext CLI工具在Firefox上签署并安装。
web-ext sign
,这将签署您的插件安装lo8azlld3#
可以直接将插件上传到Mozilla Developer Hub,然后他们正式签署它。必须从插件文件夹运行
web-ext build
,然后将zip上传到Hub。有一个自动检查,对我来说在2分钟内完成,然后我可以下载签署的.xpi
文件。