如何打包未签名的 Firefox WebExtension?

How to package an unsigned Firefox WebExtension?

我正尝试在 mac 上的 FirefoxDeveloperEdition(不需要签名)上开发 运行 的扩展。

我遵循了 "Your first WebExtension" 指南,使用 "Load temporary add-on" 时一切正常。但是当我尝试使用 "install add-on from file" 打包并安装它时,它显示 "this add-on could not be installed because it appears to be corrupt"。

我压缩了所有文件(borderify.js、manifest.json、图标,没有容器文件夹)并将后缀更改为.xpi。这是正确的包装方式吗?一些答案提到应该有一个 "install.rdf" ?如果是这样,我该如何创建该文件?文档上似乎没有指南。

更新:

我试过使用 mac 内置 "compress n items"、xpi file, also tried using web-ext build, xpi file。他们都以相同的错误警报结束。

更新 2:

我在 about:config 中设置了 xpinstall.signatures.required false。

我的 firefox 版本是:51.0a2 (2016-10-17)(64 位)

有人可以加载未签名的 xpi 吗?这是一个 Firefox 错误吗?还是只有我?

如果你想安装.xpi[=​​22=],你需要提供一个id。 将此添加到您的 manifest.json root

"applications": {
  "gecko": {
    "id": "borderify@mozilla.org",
  }
}

没有特别详细的记录,特别是 this 页面告诉 "add-on will be assigned a randomly-generated temporary ID when you install it in Firefox."。但是,这似乎只适用于在 about:debugging 上安装 - xpi 安装仍然需要 ID。它可能是任何字符串,因为您已经 运行 在 DevEdition 上禁用了检查。

不言而喻,这不适用于 Firefox 发行版。

P.S:Ctrl-Shift-J 将打开一个浏览器控制台,其中通常包含有关扩展安装错误的附加信息 - 下次可能会有用。