首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将Firefox附加组件上传到AMO时缺少manifest.json

将Firefox附加组件上传到AMO时缺少manifest.json
EN

Stack Overflow用户
提问于 2016-12-07 05:29:56
回答 5查看 3.9K关注 0票数 9

我无法使用form provided by mozilla上传我的火狐扩展。我经常收到错误Your add-on failed validation with 2 errors. No install.rdf or manifest.json foundAdd-on missing manifest,这是非常误导的,因为我的应用程序有一个a 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"
]
}

要使此功能正常工作,还缺少什么?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-12-13 19:10:25

由于我已经找到了我的问题的解决方案,并想分享它以供将来参考,因此我回答了我自己的问题:

手头的问题是我没有使用web-ext命令行工具来创建.zip / .xpi包。我能够通过安装web-ext并使用web-ext build构建扩展来解决这个问题。此操作的结果是一个包含项目的.xpi文件,然后我可以将该项目上载到AMO服务。请注意,新创建的包中的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

在这之后,我就可以上传和安装扩展了。

票数 1
EN

Stack Overflow用户

发布于 2017-04-09 05:08:54

我遇到了同样的问题,但所有这些指令都没有解决它。我通常做的是打包整个文件夹,因此manifest.json在解包时并不在第一层。

针对ME的解决方案

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

这里有一个MDN Documentation的链接。

票数 31
EN

Stack Overflow用户

发布于 2018-06-09 04:47:56

对此非常简单的答案是它无法在您的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帖子解决了我的问题,我只是想让未来关注这篇文章的人明白这一点。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41005258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档