aboutsummaryrefslogtreecommitdiff
path: root/files/zh-cn/mozilla/add-ons/webextensions/publishing_your_webextension/index.html
blob: e7792b75d4aff420633c62ffa635c420b13fc31e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
---
title: 发布你的附加组件
slug: Mozilla/Add-ons/WebExtensions/Publishing_your_WebExtension
tags:
  - WebExtensions
translation_of: Mozilla/Add-ons/WebExtensions/Package_your_extension_
---
<div>{{AddonSidebar}}</div>

<p>一般当你完成了基于WebExtension技术的附加组件的代码编写和测试, 你可能会想与其他人分享这成果(不管出于什么目的...). Mozilla旗下有一个网站: <a class="external external-icon" href="https://addons.mozilla.org">addons.mozilla.org</a> (简称AMO), 开发者们可以在这里发布附加组件, 而其他用户可以在这里找到这些附加组件并安装使用, 通过在AMO上发布你的附加组件, 你可以加入到我们的社区里来, 这里有一群用户和创造者, 说不准会发现几个使用你的附加组件的人哦.</p>

<p>你编写的附加组件并不一定需要发布在AMO上, 但是、即使你不打算在AMO上发布你的附加组件, 你也必须提交你的附加组件到AMO上来进行审核以获得签名。因为火狐浏览器会拒绝安装没有AMO签名的附加组件。</p>

<p>所以发布一个附加组件的流程, 可概述为:</p>

<ol>
 <li>压缩你所创建的附加组件文件</li>
 <li><a href="https://addons.mozilla.org/zh-CN/">AMO</a>上创建一个属于你的账户</li>
 <li>上传你的压缩文件到AMO来进行签名和审核, 并选择是否在AMO上进行发布</li>
 <li>修复在审核中发现的任何问题</li>
 <li>如果你选择不在AMO上发布, 可以恢复已签名的附件组件, 并自行发布</li>
</ol>

<p>当你准备发布附加组件的新版本时, 你可以访问 <a class="external external-icon" href="https://addons.mozilla.org">addons.mozilla.org </a>的附加组件页来更新它, 并上传新的版本.<br>
 需要注意的是: 你必须在这个附加组件页进行更新, 否则AMO没法知道你是要更新一个已经存在的附加组件呢, 还是要上传一个全新的附加组件呢.</p>

<p>如果你选择在AMO上发布你的附加组件, 之后火狐浏览器会自动检查更新. 如果你选择自行发布,  你需要在你的manifest.json中手动设置一个<code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/applications">applications</a></code> 唯一标识, 并且需要手动设置<code>update_url属性指向你的</code><a href="/en-US/Add-ons/Updates">update manifest file</a>.</p>

<div class="pull-aside">
<div class="moreinfo">
<p>火狐浏览器把附加组件包的后缀叫做或改为".xpi", 这只是".zip"的一个扩展.</p>

<p>在上传附加组件到AMO的时候, 你不需要把压缩包的后缀改为".XPI".</p>
</div>
</div>

<h2 id="1._使用zip压缩你的附加组件文件">1. 使用zip压缩你的附加组件文件</h2>

<p>首先你的附加组件文件夹应该包含一个manifest.json和其他一些需要的文件 - javascript文件, icons文件, HTML文件等等. 你需要使用zip把它们压缩成一个文件以便上传到AMO.</p>

<p>注意: 请将你的附加组件目录的的所有文件压缩为zip包,而 不要直接对附加组件根目录进行压缩(见下图所示).</p>

<h3 id="Windows">Windows</h3>

<ol>
 <li>打开你的附加组件所在的文件夹.</li>
 <li>选中所有文件.</li>
 <li>右键并选择发送到 → 压缩到(zipped)文件夹.</li>
</ol>

<p><img alt="" src="https://mdn.mozillademos.org/files/11949/install-windows.png" style="display: block; height: 576px; margin-left: auto; margin-right: auto; width: 800px;"></p>

<h3 id="Mac_OS_X">Mac OS X</h3>

<ol>
 <li>打开你的附加组件所在的文件夹.</li>
 <li>选中所有文件.</li>
 <li>右键并选择压缩<em>n项</em>.</li>
</ol>

<p><img alt="" src="https://mdn.mozillademos.org/files/11951/install-osx.png" style="display: block; height: 449px; margin-left: auto; margin-right: auto; width: 800px;"></p>

<h3 id="Linux_Mac_OS_X_Terminal">Linux / Mac OS X Terminal</h3>

<ol>
 <li><code>cd path/to/my-addon/</code></li>
 <li><code>zip -r ../my-addon.zip *</code></li>
</ol>

<h2 id="2._在AMO上创建一个账户">2. 在AMO上创建一个账户</h2>

<p>访问<a href="https://addons.mozilla.org/">https://addons.mozilla.org/</a>. 如果你已经有一个<a href="https://support.mozilla.org/zh-CN/kb/firefox-mozilla">火狐账户</a>, 你可以直接使用它来登录. 否则, 点击"注册"并按要求创建一个火狐账户.</p>

<h2 id="3._上传你的zip压缩文件">3. 上传你的zip压缩文件</h2>

<p>接下来, 上传压缩后的附加组件到AMO进行签名和审查, 并选择是否发布到AMO, 更多细节, 可查看<a href="/en-US/Add-ons/Distribution#Submitting_to_AMO">Submitting to AMO</a>.</p>

<div class="note">
<p>需要注意的是一旦你上传了你的附加组件(基于WebExtension技术)到AMO, 你不能使用Add-on SDK或过时的XUL/XPCOM技术来更新该附加组件. 如果你切换到了这些技术平台之一, 必须把它做为新的附加组件并重新提交.</p>

<p>总而言之: 像Add-on SDK和XUL/XPCOM等过时的技术体系在不久的将来都将被淘汰, WebExtensions才是唯一.</p>

<p>在上传你的附加组件之前,请再次检查你的zip包内没有包含其他不相关的文件.</p>
</div>

<h2 id="4._修复审查中出现的问题">4. 修复审查中出现的问题</h2>

<p>当你上传了附加组件, AMO服务器将运行一些基本的检查并立即通知你有关的一切问题. 这些问题分为2种类型: "错误"和"警告". 如果你有错误, 你必须修复它们并重新提交, 如果只是警告, 你最好也搞定它们(当可以也忽略警告): 然后可以继续提交.</p>

<p>如果自动检查器没有报告任何错误, 该附件组件将进行更为详细的审核(复查). 你同样会收到审查结果并且需要修复所有问题, 然后重新提交.</p>

<h2 id="5._发布你的附加组件">5. 发布你的附加组件</h2>

<p>如果你选择了在AMO上托管你的附加组件, 这意味着发布过程的结束. AMO会对该附加组件进行签名和发布, 之后其他用户就能下载并安装使用了.</p>

<p>如果你选择不在AMO上进行发布, 可以恢复已签名的附加组件, 并自行发布(比如把附件组件的压缩包直接发给别人).</p>

<p> </p>