You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Firefox加载未打包扩展失败,求助非临时安装编辑后扩展的方案

我来帮你解决Firefox 58.0(64位)上修改扩展后安装失败的问题,咱们一步步来:

一、先修复Manifest文件的错误

你遇到的几个manifest验证错误是核心问题之一,先把这些修复了,后续安装才会顺畅:

  1. background.persistent 错误
    Firefox 58对Event Pages(即非持久后台页)支持有限,提示会自动转为持久后台页。你可以直接把"persistent": false改成"persistent": true,或者干脆删掉这个字段——因为Firefox默认后台页就是持久的。

  2. identity.email 权限错误
    Firefox 58的WebExtension权限体系里没有identity.email这个单独权限,只需要保留"identity"权限即可。把manifest里的"identity.email"替换成"identity"就行。

  3. oauth2 字段位置错误
    Firefox不支持在manifest根节点直接写oauth2配置,你需要把这部分内容移到browser_specific_settings.gecko下面,格式示例:

    "browser_specific_settings": {
      "gecko": {
        "id": "your-addon-unique-id@example.com",
        "oauth2": {
          "client_id": "your-client-id",
          "scopes": ["email"],
          "authorization_url": "https://your-auth-url.com",
          "token_url": "https://your-token-url.com"
        }
      }
    }
    

    如果你的扩展不需要OAuth2功能,也可以直接删掉整个oauth2字段。

  4. options_page 字段过时
    Firefox 58已经废弃了options_page,需要换成options_ui字段,同时必须加上browser_style属性(对应控制台的警告),格式示例:

    "options_ui": {
      "page": "options.html",
      "browser_style": true
    }
    
二、解决扩展签名限制(实现非临时安装)

Firefox默认要求扩展必须经过官方签名,你有两个方案可选:

方案1:临时禁用签名验证(适合本地开发测试)

这个方法能让你直接安装修改后的扩展,但会降低浏览器安全性,只建议本地测试用:

  1. 在地址栏输入about:config,回车后点击“接受风险并继续”。
  2. 搜索以下两个配置项,修改它们的取值:
    • xpinstall.signatures.required:改为false
    • extensions.install.requireBuiltInCerts:改为false
  3. 重启Firefox,之后拖拽修复后的XPI到扩展页面就能正常安装了。

方案2:给自己的扩展签名(安全且长期可用)

如果你想长期使用这个修改后的扩展,建议给自己的扩展签名:

  1. 注册一个免费的Mozilla开发者账号。
  2. 确保已经修复好manifest的所有错误,重新打包成标准的ZIP格式XPI(注意用WinRAR打包时选ZIP格式,不要用RAR,且manifest.json要在XPI的根目录,不能嵌套在子文件夹里)。
  3. 登录Mozilla附加组件开发者后台,上传你的XPI文件进行签名,之后下载签名后的XPI。
  4. 签名后的XPI可以直接在Firefox 58上拖拽安装,不会再出现签名错误。

另外补充:你之前用about:debugging能加载临时扩展,说明修复manifest后的扩展功能是正常的,只要解决了签名问题,就能实现非临时安装。

内容的提问来源于stack exchange,提问作者Bob Kimani

火山引擎 最新活动