要在我的服务器上为我的插件提供自动更新,我需要创建一个update.rdf
文件。
如何生成这样的文件?
答案 0 :(得分:6)
使用带有--update-link
和--update-url
标记的cfx
工具。这将生成<addon name>.update.rdf
,准备上传到您的服务器。
请参阅https://developer.mozilla.org/en-US/Add-ons/SDK/Tools/cfx#updateURL_and_updateLink:
updateURL和updateLink
如果您选择自己托管XPI,则应启用主机应用程序以查找新版本的附加组件。
为此,请在XPI中包含一个名为updateURL的URL:主机应用程序将在此处获取有关更新的信息。在updateURL中,您以更新RDF格式托管文件:除此之外,还包括另一个名为updateLink的URL,它指向更新的XPI本身。
--update-link
和--update-url
选项简化了此过程。两个选项都将URL作为参数。
--update-link
选项与XPI一起构建更新RDF,并将提供的URL嵌入更新RDF中作为updateLink的值。
--update-url
选项将提供的URL嵌入XPI文件中,作为updateURL的值。请注意,正如add-on documentation所述,您应该确保加载项的更新过程是安全的,这通常涉及使用HTTPS作为链接。
因此,如果我们运行以下命令:
cfx xpi --update-link https://example.com/addon/latest/pluginName.xpi --update-url https://example.com/addon/update_rdf/pluginName.update.rdf
cfx
将创建两个文件:
- 将
的XPI文件https://example.com/addon/update_rdf/pluginName.update.rdf
嵌入为updateURL- 一个RDF文件,它嵌入
https://example.com/addon/latest/pluginName.xpi
作为updateLink的值。
答案 1 :(得分:0)
cfx
has been deprecated since Firefox 38并替换为名为jpm
的新工具。
根据JPM中关于supporting updates for self-hosted add-ons的MDN文章,当您在{0}中包含jpm xpi
和updateURL
键时,JPM会使用updateLink
生成更新清单文件package.json
档案:
为此,请在package.json中包含两个额外的键:
- updateURL:此URL包含在jpm xpi构建的XPI文件的安装清单中。它指向您的更新清单。该 updateURL值可以是HTTPS。如果不是,那么您也需要 签署更新清单,然后使用包含公钥 package.json中的updateKey字段。有关详细信息,请参阅保护更新 此。
- updateLink:此URL包含在更新清单文件中。它指向XPI,并且必须是HTTPS URL。
有关详情,请参阅Supporting updates for self-hosted add-ons上的MDN文章。
答案 2 :(得分:0)
执行此操作的最佳方法是使用jpm xpi
和jpm sign
,--xpi
参数指向新创建的.xpi
文件。
jpm xpi
条评论会创建update.rdf
文件。
问题是update.rdf
文件不正确。
以某种方式解决问题。
.xpi
文件重命名为.zip
,并检查内容以在自动生成的install.rdf
文件中包含更新网址。about:config
并将extensions.logging.enabled
更新为true
。现在查看控制台并在更新时查找错误。希望这有帮助。