将Firefox附加组件上传到AMO

时间:2016-12-06 21:29:56

标签: firefox firefox-addon manifest

我无法使用form provided by mozilla上传我的firefox扩展程序。我经常收到错误Your add-on failed validation with 2 errors. No install.rdf or manifest.json foundAdd-on missing manifest,这是非常误导的,因为我的应用程序一个manifest.json。

manifest.json看起来像这样:

{
"manifest_version": 2,
"version": 1.0,
"name": "my-extension-name",
"description": "Lorem ipsum dolor sit amet",
"background": {
   "scripts": ["js/background.js"]
},
"main": "popup.js",
"browser_action": {
  "default_icon": "img/icon_grey.png",
  "default_popup": "popup.html",
  "default_title": "loremipsum"
},
"engines": {
  "firefox": ">=38.0a1"
},
"permissions": [
  "activeTab",
  "tabs",
  "background",
  "http://*/*",
  "https://*/*",
  "notifications",
  "alarms",
  "storage",
  "webRequest",
  "webRequestBlocking",
  "clipboardRead"
]
}

缺少什么工作?

5 个答案:

答案 0 :(得分:27)

我遇到了同样的问题,但所有这些说明都没有解决。 我一直做的是打包整个文件夹,因此当解压缩时,manifest.json不在第一级。

解决方案

选择所有文件而不是文件夹,然后将它们打包为一个.zip文件,它应该可以正常工作。至少它对我有用。

以下是MDN Documentation的链接。

答案 1 :(得分:2)

这个非常简单的答案是它无法在你的zip文件中找到清单。这是因为当您使用Windows中的默认压缩器获取文件并将其压缩时,它会将文件放入您创建的zip文件的子文件夹中...

压缩前

folderYouWantCompressed -FileInFolder.html -Manifest.json

压缩后

将如下所示

nameOfZip.zip -folderYouWantCompressed -FileInFolder.html -Manifest.json

但你想要的是

nameOfZip.zip -FileInFolder.html -Manifest.json

Oliver Sauter回答的原因是因为当您选择“folderYouWantCompressed”中的所有文件时,它会在没有子文件夹的情况下进行压缩,这意味着您不会遇到此问题,并且找到清单文件没有问题。

我可以告诉“正确的答案”似乎是签署附加组件本身并能够正确获取清单文件,所以它确实有效,但看起来像是第三方的做法(我做了)不要太深入了解)

注意:我最初通过查看Oliver Sauter帖子解决了我的问题,我只是想让未来的人看清楚这篇帖子。

答案 2 :(得分:1)

当你打开你的插件包zip文件时,你应该可以看到manifest.json文件,以便在AMO上传它。

在您的情况下,看起来当您打开包zip时,有一个文件夹,并且该文件夹中包含manifest.json。

答案 3 :(得分:1)

由于我找到了解决问题的方法,并希望分享以供日后参考,我回答我自己的问题:

手头的问题是我没有使用web-ext命令行工具来创建.zip / .xpi包。我能够通过安装web-ext并使用web-ext build来构建扩展来解决问题。此操作的结果是一个.xpi文件,其中包含我可以上载到AMO服务的项目。请注意,新创建的软件包中的manifest.json与我最初提供的manifest.json 相同。但是,除了manifest.json之外,还创建了一个目录META-INF,其中包含mozilla.mfmozilla.rsamozilla.sf文件。

然而,这并没有完全解决我的问题。将扩展程序上传到AMO后,无法安装,据说已损坏。显然,这是我在interwebz中读到的内容(并忘记了源代码),Mozilla打开上传的.zip / .xpi包来测试它,因为我的包没有签名,Mozilla无法确保其完整性并标记它不安全(即受损)。

为了解决第二个问题,我必须签署扩展名。这可以使用以下命令完成:

web-ext sign --api-secret YOUR_API_SECTER --api-key YOUR_API_KEY

在此之后,我能够上传并安装扩展程序。

答案 4 :(得分:0)

遇到同样的问题,问题是文件名区分大小写:

Manifest.jason - >错误,没有找到清单 manifest.json - > susscessful

相关问题