我是Firefox扩展开发的新手,友好地说它是第一天,我已经按照以下文章开始使用Firefox扩展开发:How to develop a Firefox extension。
如果我从上面给出链接的教程下载示例并尝试安装,它安装完美但是,当我更新该示例时(只需将其名称更新为新的扩展名,所有文件中都需要),以及然后安装,我收到以下消息:“无法安装X,因为它与Firefox 15.0.1不兼容。” (其中X是我的扩展名)。
奇怪的行为相同的代码一是安装正常,另一个给出错误。
知道哪里出错了,是什么造成了这个?
答案 0 :(得分:0)
问题是您忘记调整install.rdf
中的兼容性范围,因此em:maxVersion
仍在说3.1b2
(意味着Firefox 3.1b2 - 相当旧的版本)。如果要支持当前稳定的Firefox版本,则应将其更改为15.*
;如果要支持当前的Beta版本,则应将其更改为16.*
。您还可以将em:minVersion
更改为更有意义的内容:我怀疑您是否会验证您的扩展程序是否仍适用于Firefox 2.0。
如果您不更改扩展ID,为什么扩展安装,这更复杂。首先,有一个兼容范围的软覆盖机制,允许扩展作者在不发布新版本的情况下更改兼容的版本范围。在这种特殊情况下,Firefox将通过请求this address或类似的更新来检查扩展更新。更新服务器告诉它版本1.0仍然是最新的,但将maxVersion
调整为Firefox 8.0 - 此值将覆盖install.rdf
中指定的任何内容。
但这不是故事的结局。兼容性检查机制是changed significantly in Firefox 10,现在默认假设加载项与较新版本兼容,即使未在任何地方明确指定。要求是扩展名不是opt out of lax compatibility checking,不包含二进制组件,并且至少与Firefox 4兼容。由于软覆盖,原始扩展与Firefox 8兼容,具有不同的扩展ID仅与Firefox 3.1b2兼容(它不在addons.mozilla.org上托管,因此更新服务器不知道它),这意味着松散兼容性检查不适用于它。
供参考:上一段中描述的行为受extensions.strictCompatibility
,extensions.minCompatibleAppVersion
和extensions.minCompatiblePlatformVersion
首选项控制。