What is the easiest way to install a local, unsigned add-on permanently?

I would like to use a simple add-on to override my new-tab and home pages with the contents of my own HTML file.

Currently what I have done is:

  1. Installed Firefox Developer Edition. It seems people have implied you can only install unsigned add-ons using certain builds of Firefox, this being one of them. This seems strange since xpinstall.signatures.required can be disabled in every build?
  2. Ran web-ext build inside my add-on’s directory which produced a zip file of my add-on.
  3. Attempted to use the Install Add-on From File... feature on the about:addons page. However, I receive an error saying the following:
    image
    This seems strange considering the add-on hasn’t been downloaded from a site, it was created on this machine.

The pref doesn’t have any effect on Release or Beta builds.

Maybe it’s because it doesn’t have an ID in the manifest?

Overall, the easiest way to work with personal add-ons is to sign them for self-distribution. They won’t be listed anywhere and they will be signed so they are easier to install. If that doesn’t work for you, what you listed in your post is the supported way to install unsigned extensions.

I definitely haven’t specified an ID in the manifest, please see below:

{
    "manifest_version": 2,
    "name": "New Tab",
    "description": "My Firefox start page.",
    "version": "0.0.1",
    "browser_action": {
        "default_icon": "assets/extension-icon.png"
    },
    "chrome_url_overrides": {
        "newtab": "index.html"
    },
    "chrome_settings_overrides": {
        "homepage": "index.html"
    }
}

Should this be put under browser_specific_settings > gecko > id or something else?

Yes, just as it is documented here.