我无法使用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"
]
}
缺少什么工作?
答案 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.mf
,mozilla.rsa
和mozilla.sf
文件。
为了解决第二个问题,我必须签署扩展名。这可以使用以下命令完成:
web-ext sign --api-secret YOUR_API_SECTER --api-key YOUR_API_KEY
在此之后,我能够上传并安装扩展程序。
答案 4 :(得分:0)
遇到同样的问题,问题是文件名区分大小写:
Manifest.jason - >错误,没有找到清单 manifest.json - > susscessful