我已经知道临时安装附件以进行调试的方法。 但是,我想永久安装它。我不想将其上传到AMO,因为我已将它开发为仅供我自己使用。
如何在Firefox上安装它?
浏览器: Firefox每晚56a1
操作系统:macOS 10.12.5
我在引用Getting started with firefox-addon时尝试了安德鲁的方式,但是发生了错误(This add-on could not be installed because it appears to be corrupt.
),尽管临时安装成功了。
为什么安装仅在从Install Add-on from File...
安装时失败?
源代码在这里 https://github.com/KiYugadgeter/webext
以下是浏览器控制台上的错误消息。
1497764354857 addons.xpi WARN Invalid XPI: Error: Cannot find id for
addon /
Users/username/jsworks/webextensions/stacknotifier/something.xpi (resource://gre/modules/addons/XPIInstall.jsm:1642:17) JS Stack trace: loadManifest@XPIInstall.jsm:1642:17 <
async*init@XPIInstall.jsm:2122:13 < async*createLocalInstall@XPIProvider.jsm:4820:12 < getInstallForFile@XPIProvider.jsm:3437:5 < callProviderAsync@AddonManager.jsm:297:12 <
promiseCallProvider/<@AddonManager.jsm:321:53 < Promise@Promise-backend.js:390:5 <
promiseCallProvider@AddonManager.jsm:320:10 < getInstallForFile/<@AddonManager.jsm:1856:29
< async*getInstallForFile@AddonManager.jsm:1854:13 < getInstallForFile@AddonManager.jsm:
3560:7 < doCommand/<@extensions.js:1472:13
[Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIURI.hostPort]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: resource://gre/modules/PopupNotifications.jsm :: PopupNotifications_refreshPanel/< :: line 806" data: no]
答案 0 :(得分:3)
您的错误是:Invalid XPI: Error: Cannot find id for addon
引用WebExtension documentation:
您何时需要附加ID?
- 如果要从其XPI文件加载加载项,请不要使用about:debugging临时加载它,并且它没有签名。
- ...
这是你的情况;因此,您需要在清单中填写applications.gecko.id
key。这与setting key
key in Chrome的作用类似(在Chrome中,打包扩展程序的ID是key
字段的哈希值)。
或者(可能最好),您可以按Forivin's answer所示签署您的XPI,因为只能在Nightly中加载未签名的WebExtensions。这需要与AMO进行互动 - 但没有要求在那里举办。
答案 1 :(得分:2)
最新版本的Firefox要求您在永久安装之前对扩展程序进行签名。要签署您的扩展程序,您不必发布它。您所需要的只是一个名为web-ext
的工具。然后你可以从终端运行它:
web-ext sign --api-key=$AMO_JWT_ISSUER --api-secret=$AMO_JWT_SECRET
web-ext入门:
https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Getting_started_with_web-ext
web-ext sign
:
https://developer.mozilla.org/en-US/Add-ons/WebExtensions/web-ext_command_reference#web-ext_sign
获取您的AMO_JWT_ISSUER和AMO_JWT_SECRET:
https://addons.mozilla.org/en-US/developers/addon/api/key/
简而言之:
npm install --global web-ext
打开一个新终端,进入包含扩展源的文件夹并运行
web-ext sign --api-key=xxxx:xxxxxxx:xxx --api-secret=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
答案 2 :(得分:2)
既然你说你正在使用Nightly,你也可以去about:config,找到偏好&#34; xpinstall.signatures.required&#34;把它翻到假。然后,您应该可以从about:addons - &gt;安装您的扩展程序。 &#34;从文件安装加载项...&#34;