Reputation: 11160
I have my own browser extension with some personal website customizations. Works fine in Chrome, but doesn't work in Firefox.
Unlike Chrome, it seems Firefox can't install unpacked extensions or add-ons. Only in debug mode I can do Load Temporary Add-on
, select the folder with my extension, and that works OK. Except that's just temporary.
When I pack the extension by putting the files in a .zip (not within a subdirectory or anything, the archive just directly contains the files) and rename it to .xpi, and then choose Install Add-on from file
and select my .xpi, it says:
The add-on downloaded from this site could not be installed because it appears to be corrupt.
While troubleshooting, I made a minimal dummy extension which doesn't do anything, consisting only of a manifest.json
and dummy.js
file. Then pack that from the command line using 7z a -tzip test.xpi
in that directory, which creates my zip file called test.xpi
containing the two files. Loading that extension in Firefox give the error above.
For your reference here is my manifest.json:
{
"manifest_version": 2,
"name": "Test Extension",
"version": "1.0",
"description": "Dummy Text Extension",
"content_scripts": [
{
"matches": [ "*://*/" ],
"js": ["dummy.js"]
}
]
}
And the content of dummy.js is:
// this file is intentionally left blank
Again: works fine in Chrome, works fine in Firefox when loading as temporary add-on in debug mode (i.e. by loading the files, in the open dialog I select the manifest.json file). But loading the .xpi to install this extension permanently results in the "appears to be corrupt" error.
FYI: I'm using the latest versions of Chrome and Firefox on macOS 10.15.5.
For testing purposes, here is the exact test.xpi file I created, but packing it manually as decribed above will give the same result.
Upvotes: 31
Views: 41945
Reputation: 1229
As of 2024:
Only option to install unsigned addons is to use one of the following firefox versions:
ESR (Extended Support Release), Developer Edition and Nightly
You then also need to go to aboud:config and set xpinstall.signatures.required to false.
Setting xpinstall.signatures.required to false does NOT allow you to install unsigned extensions in normal firefox version.
Upvotes: 3
Reputation: 5
When trying to upload the addon to Mozilla for verification, I encountered the error, that the manifest.json was missing. Turns out, the file has to be in the root of the zip.
..
yourAddon.zip
manifest.json
OptionalFolder/
yourScript.js
anotherScript.js
I tried packing it like that and adding it without verifying it (read lukacs answer for more information) and it worked.
Upvotes: 0
Reputation: 322
It is possible to just upload the addon to Mozilla Developer Hub, and they sign it officially. One has to run web-ext build
from the addon folder, then upload the zip to the Hub. There is an automatic check, which completed in ~2 minutes for me, then I could just download the signed .xpi
file.
Upvotes: 2
Reputation: 2333
Did you try the web-ext tool and sign your add-on? You can use the Web-ext CLI tool to sign and install on your firefox.
web-ext sign
, this will sign your addon for installationUpvotes: 11
Reputation: 141
Ran into the exact same problem the other day..
To get my personal xpi to install permanently (under Firefox for Linux 77.0.1):
had to disable extension signing about:config
, xpinstall.signatures.required = false
(unfortunatelly this will need to stay, because signatures seems to be verified on every browser start)
add an explicit id to browser_specific_settings section in the manifest
For example:
"browser_specific_settings": {
"gecko": {
"id": "blahblah@blah"
}
}
Hope this helps!
Upvotes: 14