先决条件
请不要把任何相关的开发工具和扩展程序(命名推荐小写英文和数字,不推荐特殊符号等),放到有空格的目录(如Progaram Files\Python),会导致意想不到的错误,无法进行后续操作。(最新开发SDK可能修复了该错误,参见https://github.com/mozilla/addon-sdk/pull/1738)
开发 Add-on SDK,你需要:
-
Python 2.5,2.6 或 2.7。 需要注意的是在任何平台都是不支持 Python3.x版本的 。确保你已经安装过Python。
-
Firefox火狐浏览器(本教程针对最新的浏览器)。
-
SDK本身:可以获取SDK的最新稳定版本为 tarball压缩包 或 zip 文件。
另外,你可以从它的GitHub repository库中得到最新的开发版本。
为AMO开发扩展
如果提交到AMO只有最新发布或许使用。
git archive 需要扩展一些Git属性占位符。
git checkout 1.16 git archive 1.16 python-lib/cuddlefish/_version.py | tar -xvf -
通过Homebrew自动安装到Mac OS X
使用以下命令通过 homebrew来安装SDK插件工具:
brew install mozilla-addon-sdk
安装到Mac OS X/Linux
无论你选择哪个方式都要解压缩文件的内容作为根路径,并通过shell/命令提示符切换到SDK的根目录下。例如:
tar -xf addon-sdk.tar.gz cd addon-sdk
如果你是Bash的用户,则继续运行(大多数人都是的):
source bin/activate
如果你是一个非Bash的用户,你应该运行:
bash bin/activate
命令提示符现在应该有一个包含SDK的根目录名称的新的前缀:
(addon-sdk)~/mozilla/addon-sdk >
安装到Windows
同样解压缩文件,并通过命令符进入到SDK根目录下,例如:
7z.exe x addon-sdk.zip cd addon-sdk
接着运行激活命令:
bin\activate
同样可以看到命令提示符现在应该有一个包含SDK的根目录名称的新的前缀:
(C:\Users\mozilla\sdk\addon-sdk) C:\Users\Work\sdk\addon-sdk>
SDK 的虚拟环境
当命令提示符出现新的前缀表明你的已经搭建好了SDK的运行环境,那么你就可以使用Add-on SDK来开发的命令行工具。
任何时候,你都可以通过运行 deactivate 命令停用虚拟环境
.
配置好的虚拟环境是特定于这个特定的命令提示符。如果您关闭命令提示符, 它会关闭运行环境,你需要source bin/activate
或 bin\activate 在
一个新的命令提示符重新激活它。如果你打开一个新命令提示符,SDK将不会被激活在新的提示。
可以将SDK的多个副本拷贝在磁盘上的不同位置,并在它们之间切换,甚至可以让他们同时激活运行在不同的命令提示符。
制作启动项
所有 activate
的作用是通过设置环境变量,使位于顶层 bin
目录下的脚本 位于当前命令符下,制作的启动项 ,通过永久环境中的这些变量设置,以便每一个新的命令提示符下都能读取它们。那么就不需要每次都去打开新的命令提示符来激活 activate
。
因为变量精确设置可能随SDK发布新版本的变化,所以最好是指激活脚本来确定哪些变量需要设置。激活使用不同的脚本设置bash环境不同的变量(Linux和MAC OS X和Windows环境)。
Windows
在Windows上,使用 bin\activate\
activate.bat
批处理脚本,也可以使用命令行setx
工具或控制面板激活永久使用。
Linux/Mac OS X
在 Linux 和 Mac OS X,使用source bin/activate
/activate
bash 脚本, 你可以 ~/.bashrc
( Linux) 或~/.bashprofile
(Mac OS X) 来激活。
作为替代,你可以在 ~/bin
目录中创建到cfx 程序的符号链接:
ln -s PATH_TO_SDK/bin/cfx ~/bin/cfx
完整性检查
在shell提示符运行:
cfx
它会产生下面信息,这里是第一行内容,后面是大量的使用信息:
Usage: cfx [options] [command]
这是 CFX命令行程序, 是主界面加载项的SDK,可以使用它来启动Firefox和测试插件,打包附加分发,查看文档和运行单元测试。
出现问题?
尝试通过故障排除页面来解决遇到的问题。
下一步
接下来, 开始学习 cfx 教程, 其中介绍了如何使用CFX的工具来创建附加组件。