是的,您可以拥有多个版本的插件,这些版本与指定范围的 Firefox 版本兼容。这种能力已经存在多年了。
在您的 manifest.json 文件中,您可以指定 strict_min_version:
"applications": {
"gecko": {
"id": "addon@example.com",
"strict_min_version": "42.0",
"strict_max_version": "50.*",
"update_url": "https://example.com/updates.json"
}
}
但是,manifest.json 键需要 Firefox 45(用于 WebExtensions)。多年来,为其他类型的附加组件指定应用程序的最低和最高版本已经可用多年了。您还需要从 AMO Developer Hub 手动管理每个插件版本的最大兼容 Firefox 版本。
在 AMO 开发者中心的插件控制面板中,选择“管理状态和版本”(彩色左侧菜单列表顶部的底部选项):
在您选择“管理状态和版本”时显示的页面上,选择您关注的版本。
在每个插件版本的页面上,您可以更改与所选插件版本兼容的 Firefox 版本:
注意:根据我的经验,版本兼容性选择会影响自动安装插件的哪个版本,但设置最高版本不会阻止用户安装和安装最新的 Firefox 版本中插件的版本,该版本高于为插件的最新版本指定的最高版本。此外,即使您手动设置了最高版本,AMO 也会根据自动化测试自动增加您插件最新版本的最高 Firefox 版本。
但是,在其他类型的插件中,这应该可以通过strictCompatibility entry in install.rdf 进行控制。就我而言,在上传附加版本时(在存在不兼容版本的 Firefox 之前),我不知道与未来版本的 Firefox 不兼容。因此,我没有在 install.rdf 中设置该选项。对于 WebExtension,这应该可以通过 manifest.json 中的 strict_max_version 键进行控制。
如果您将更新版本的插件上传到 AMO,则无需担心这一点。与用户运行的 Firefox 版本兼容的插件版本,基于插件的 .xpi 中包含的信息和/或您在 AMO 中指定的信息每个版本的开发者中心控制面板,应自动选择下载和安装。声明为与旧版本 Firefox 不兼容的新版本插件不应用于自动升级。
关于转换数据的附注:
您应该考虑发布至少一个使用 Embedded WebExtension 的插件版本,以便能够将您存储在旧插件版本中的任何数据转换到 WebExtensions。