0

我正在尝试为我的 chrome 扩展为 chome webstore 创建 zip 包,并且难以确定manifest.jsonzip 包中需要哪种格式。

我的第一次尝试是将manifest.json我的扩展(编译为.crx文件)中的那个复制到 zip 包中,所以 zip 包的内容

  • manifest.json
  • myextension.crx

但是这种方法会导致在尝试在 chrome 中安装扩展时无法加载后台脚本的问题。

我的第二次尝试是剥离清单 json,只留下一些字段,例如名称、描述和图标。看来我的第二次尝试成功了,因为可以安装我的扩展。

我的方法正确吗?请指教。

4

2 回答 2

0

清单文件的正确格式在此处记录。话虽如此,我怀疑这个问题与您的清单文件无关,而是与您的 zip 文件的结构有关。提交 zip 文件时,请确保压缩目录的内容,而不是目录本身。

例如,以下结构是可以的:

manifest.json
background.js
...

以下是不行的:

extension/manifest.json
extension/background.js

您可能已经创建了以下情况,这是正确的,因为它将后台脚本声明为“background.js”,而它实际上位于“extension/background.js”:

manifest.js              containing "background": {"scripts": ["background.js"] }
extension/background.js

您的第二次尝试可能成功了,因为您以正确的方式压缩了文件。

于 2013-11-13T17:32:34.473 回答
0

实际上,您应该上传一个仅包含扩展根目录的 ZIP 存档(不应CRX编辑任何内容)。根据“入门”指南

创建包含 manifest.json 和图标的目录的 ZIP 存档。在 Windows 上,您可以通过右键单击 myapp 并选择菜单项发送到 > 压缩(压缩)文件夹来执行此操作。在 Mac OS X 上,按住 control 并单击 myapp 并选择压缩“myapp”。

如果你喜欢使用命令行,你可以输入:

zip -r myapp.zip myapp

注意: ZIP 存档不应该包含扩展根目录的内容,而是根目录本身(当然,包括它的所有内容)。


(顺便说一句,我不知道为什么您的第二次尝试有效 - 根据文档不应该。)

更新:
在我自己尝试之后,这两种方法似乎都有效。
最重要的是,上传一个包含扩展内容的 ZIP 存档,而不是任何CRXed 内容。谷歌将自己生产 CRX。

于 2013-11-13T17:35:13.347 回答