在构建了你的扩展之后,你肯定会想将它分发给你的朋友试试。无论您是公开还是私下分发您的附加组件,通过 addons.mozilla.org (AMO) 或者别的方式,你都应该对你的附加组件进行认证。

认证附加组件

从 Firefox 43 开始,附加组件的分发开始有一些限制了。支持 Firefox 的扩展和多成分安装包需要经由 Mozilla 认证才能在 Firefox 的正式版和公开测试版上安装。注意,这只针对类型为 2 和 32 的附加组件;其他类型的附加组件(例如主题和语言包)不需认证。只支持其他应用程序的附加组件(例如支持 Thunderbird 或 SeaMonkey)目前也无需认证。未认证的附加组件仍然可以在 Firefox 的 开发者版本、Nightly(每夜版)和 ESR 版本中安装,只需在 about:config 中切换 xpinstall.signatures.required 选项。

只有 Mozilla 可以认证您的附加组件,这样才能使默认的 Firefox 可以安装它。附加组件将在 提交到 AMO 并且通过自动或者手动代码审查后被认证。请注意,您在 AMO 上发布和部署您的附加组件是可选操作。如果您打算自行分发您的附加组件,您可以选择“不上架”的选项,那么 AMO 就只会为您提供认证后的包。

认证API

你可以通过 addons.mozilla.org signing API 为你的 XPI 文件认证.

如果你的附加组件是基于 SDK ,那么可以使用 jpm 工具,  jpm 认证 命令将于API一起认证你的附加组件。

如果你的附加组件是基于 WebExtension,那么可以使用 web-ext 工具。 web-ext 认证 命令将于API一起认证你的附加组件。

提交到 AMO

通过这个提交表单上传新的附加组件到 AMO。第一个步骤是阅读和接受我们的开发者协议

然后,你需要选择是否通过AMO部署和分发你的附加组件。这里是一些需要注意的事项:

  • AMO 是一个非常受欢迎的分发平台,有着成千上万的访问者和可下载插件。它集成在Firefox附加组件管理器,可以很容易地从Firefox的用户界面直接安装插件AMO上发布的插件。
  • 所有在AMO上架的附加组件都需要通过员工和志愿者团队的代码审查和测试。它们需要满足各种技术和内容政策以便被接受。因此,审查时间可能在几个小时到几个星期之间,其时间长度取决于附加组件的复杂度和其他因素。
  • 未上架的附加组件大多数是会自动审查和认证的。如果一个附加组件没有通过自动审查,你可以选择将它移动到一个审查队列,它应该在几天内被审查。如果未上架的附件需要捆绑安装(捆绑应用程序而不是通常的Web安装),那么它需要的代码审查可能需要几个星期才能完成。
  • 当你为你的附加组件更新添加其他特性或修复bug,并且希望所有先前安装版本的插件都更新至自己的最新版本时:
    • 如果你的插件在AMO上架,那么所有你所要做的是向AMO的提交新版本:插件会默认自己为AMO的新版本。
    • 如果你的插件未上架,你需要告诉主机应用程序(例如 Firefox)在哪里能够获取插件的新版本。要做到这一点,需要在插件的manifest文件中包含一个URL,叫做 updateURL:主机应用重新会在这里获得更新的信息。在 updateURL你需要托管一个 RDF 格式的更新文件:这个文件包含另一个叫做 updateLink的 URL, 其指向更新的 XPI 本身。如果你在使用 Add-on SDK,可以查看自托管插件更新的支持

切换上架或下架

你需要谨慎抉择,因为现在切换上架或下架并不容易。基于一些平台的限制,为了切换你将需要删除你的插件的接口,并且联系 AMO 管理员来使原先的插件ID失效以便重新提交。你应当要知道如果你要下架插件,你当前的用户不会被自动迁移到未上架的版本。从下架切换到上架要容易一些,因为如果插件在它的manifest中没有 updateURL,Firefox 会在 AMO 上检查更新。

不上架(公开)的附加组件

在接受开发者协议后,您将被询问是否想要在 AMO 上公开上架(列出)您的附加组件。您可以选择不上架。

然后你会被询问你的插件侧载或不侧载。侧载是指插件XPI捆绑在一个应用程序中,而不是由用户直接安装。这将是一个防病毒软件包,其中包括一个同伴安全扩展。如果你的插件是直接从网上下载,或由用户手动安装,那么你不需要这个选项。

在内部,AMO会标记未上架的插件审核意见,这个要求侧装插件全面审核,和其他剩余的初步审核。你可能会发现这些标签,这个是附加意见书,要求非上市侧装完整的审查意见书,和所有其余的初步审查意见书。当你浏览你的插件的审核状态时你会发现这些标签。注意,对于未上架插件的初步审查和全面审查没有区别,除非需要侧装该i插件。

选择你的插件支持的平台并上传你的XPI。该文件将被自动的代码验证程序检测,它会根据所检测问题会显示一个数字或警告或错误。如果在您的包中没有发现错误,您的附加管理页面将被创建,并且您的文件将立即认证。您还将收到电子邮件,说明如何下载已认证的文件。

您的插件的所有的新版本也需要认证才能发布。一旦您的第一个版本已经提交,您可以在开发页为您的附加上传新版本。从自动验证到手动代码审查的过程是相同的。

上架的附加组件

在接受开发者协议后,你会被询问是否在 AMO 上架。上架是默认选项。

选择你的插件支持的平台并上传你的XPI。该文件将被自动的代码验证程序检测,它根据所检测问题会显示一个数字或警告或错误。如果通过验证之前包中有一些错误需要修复,错误才会显示在选择上架的插件中。警告在重要性和严重程度上会有所不同;你应该仔细阅读所有的信息,看看是否有任何东西可以在附件中进行修正,以避免它们出现。这并不意味着你应该尝试让你的代码来绕过验证警告。这种做法可能会导致您的插件被拒绝或更严重地被锁定上架功能。

一旦你完成了你的插件的上架提交,它将被列入审核队列,我们的审查小组的其中一个成员将最终看它一遍。审查时间可能在几个小时到几个星期之间,其时间长度取决于附加组件的复杂度和其他因素。第一次提交需要较长时间,因为所有的代码需要审查。更新是基于比较的回顾,所以更快。一旦你的插件通过审查,文件将被认证并发在 AMO 上发布。

以上架的插件可以提交初步或全面审核。初步审核包括安全和内容检查,侧重于插件的代码。全面审核是一个更高的标准,审核包括功能测试和性能检查。全面审核的插件更多的突出在网站上,可以被选作特性。被提名为全面审核但不符合该标准的附加组件反而可能会收到初步审核批准。

测试版本(Beta)

测试通道仅适用于通过完全审核的附加组件。

要创建一个测试版本,需要上传一个含有以下任意字符的特殊版本字符串文件: a,b,alpha,beta,pre,rc ,在结尾处有一个可选的数字。此文本必须在版本字符串结尾。如果你了解正则表达式的格式,这就是我们所希望得到的版本号:“"(a|alpha|b|beta|pre|rc)\d*$".

一旦一个上传到的AMO文件符合此标准,它会被自动检测作为一个测试版。添加这些独特版本号的用户将自动提供最新的beta更新。Beta版本作为未上架插件版本,如果它们通过自动验证那它们将被接受并立即认证。如果你也使用AMO以外的这些版本更新,那么它们必须不能是侧装,也不得推侧装的版本。

所有权

可以为多个用户赋予更新和管理附加组件的权限。附加组件的现有作者可以通过我们提供的开发者工具转移所有权和和添加其他开发者到附加组件的管理清单。转移所有权不需要与 Mozilla 代表进行确认。

代码纠纷

许多附加组件允许其源代码被公开查看。这并不意味着源代码是开源的,或者可在另一个附加组件中使用。一个附加组件的原作者默认保留其工作成果的版权,除非在其许可协议中另有说明。

在我们收到违反版权或者许可协议的事件通知时,我们将按照 DMCA 采取措施,其中可能包括从列表中下架一个附加组件。有关此流程的详细信息,以及如何报告商标或许可协议相关问题,参见这里

如果你不确定一个附加组件目前的版权状况,你必须联系原作者并在得到明确许可之后才能使用相应的源代码。

文档标签和贡献者

 此页面的贡献者: Dhakkan, yfdyh000
 最后编辑者: Dhakkan,