【问题标题】:How to update self-hosted firefox webExtension如何更新自托管的 Firefox webExtension
【发布时间】:2018-08-30 19:56:16
【问题描述】:

如何将我的自分发的 firefox webExtension 配置为自动更新,我已尝试关注 MDN update doc,但仍然无法更新。 我的网络扩展托管在一个子域名上,例如

https://files.example.com/myfile/extension.xpi

我的updates.json 文件与我的.xpi 文件位于同一位置

这是我的updates.json的原型

{
  "addons": {
      "updates": [ { "version": "1.2",
          "update_link": "https://files.abc.com/myfiles/extension-1.2-an+fx.xpi" },
           { "version": "1.3",
          "update_link": "https://files.abc.com/myfiles/extension-1.3-an+fx.xpi" }
      ]
  }
}

这是我从浏览器控制台得到的乱码

1535658478365 addons.update-checker WARN onUpdateCheckComplete failed 
to parse update manifest: [Exception... "Update manifest is missing a 
required addons property." nsresult: "0x80004005 (NS_ERROR_FAILURE)" 
location: "JS frame :: 
resource://gre/modules/addons/AddonUpdateChecker.jsm :: 
getRequiredProperty :: line 120" data: no] Stack trace: 
getRequiredProperty()@resource://gre/modules/addons/AddonUpdateChecker.jsm:120
parseJSONManifest()@resource://gre/modules/addons/AddonUpdateChecker.jsm:130 onLoad()@resource://gre/modules/addons/AddonUpdateChecker.jsm:309 UpdateParser/<()@resource://gre/modules/addons/AddonUpdateChecker.jsm:241

【问题讨论】:

    标签: firefox firefox-addon-webextensions


    【解决方案1】:

    您的“updates.json”似乎缺少插件名称和 XPI 哈希。我也会在文件名中没有“+”的情况下进行测试,我认为这会导致我出现问题(由于托管服务器)。

    要查看您的插件 UUID(例如“ADDONNAME@test.com”),请登录开发者中心,点击编辑信息,然后在技术信息下方查看。要生成 XPI 文件的 update_hash,我建议使用 VSCryptoHash,但任何其他生成加密哈希的程序都可以。

    {
      "addons": {
        "ADDONNAME@test.com": {
          "updates": [
           { "version": "1.0.0",
             "update_link": "https://files.abc.com/myfiles/extension-1.2-fx.xpi" ,
             "update_hash": "sha256:blahblah" }
          ]
        }
      }
    }
    

    控制台错误表明您的清单也缺少某些内容。这是一个基于我的有效示例。

    "applications": {
        "gecko": {
            "id": "ADDONNAME@test.com",
            "strict_min_version": "50.0",
            "update_url": "https://webpage/Updatefile.json"
        }
    },
    

    【讨论】:

    • 感谢您的关注,“ADDONNAME@test.com”;它是我的插件名称@它托管的域还是我的电子邮件(太打扰添加这个)或任何域名。顺便说一句,update_hash;由程序或我能想到的任何字符的串联生成。对不起,我还在学习中
    • 换句话说,什么是“ADDONNAME@test.com”和update_hash,因为我不知道如何与这些术语联系起来
    • 谢谢,我终于突破了,看来我之前的版本分配的“id”和现在改的不一样。我用其他一些东西解决了这个问题。我做到了。非常感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-17
    相关资源
    最近更新 更多