更新:解决了一部分,但没有解决其他
我现在有 CRX 更新(它没有重建)。
但是,Chrome 不会接受 https URL 中的 XML 或 CRX。
我相信#2是因为它是一个自签名证书。有谁知道是否有办法解决这个问题?(这纯粹是为了开发,所以在内部托管)
原帖:
我创建了一个打包的扩展,托管在我的内部网站上,但通过从桌面拖动它被添加到 Chrome(因为 Chrome 不允许通过外部网站安装打包的扩展 - 请参见此处:使用我的 URL 添加 ExtensionInstallSources 首选项到 Chrome首选项,仍然不允许安装“.crx”打包应用程序)。
清单已update_url
设置为位于我网站上的 XML 文件。该 XML 文件的 crx 文件的 url 设置在updatecheck codebase='...'
. 这两个文件都存在于网站上并且可以找到。我还在XML 文件2.0.0.2
和. 我还对扩展的 index.html 文件进行了更改。2.0.0.2
manifest.json
我检查了appid
它,它在 XML 文件和 Chrome 中是相同的。
尽管单击“立即更新扩展”按钮大约 50 次,并等待 10 分钟,但它并没有更新。
注意:我确实将站点托管在我的主机文件中的内部 ip 192.168.1.108 作为别名,myinternal.fake
但这适用于 chrome 和 firefox,所以我认为这不是问题
更新 XML 文件(位于:https://myinternal.fake/updates/helloworld.xml)
<?xml version='1.0' encoding='UTF-8'?>
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
<app appid='akchdaojnpiglpjeiamjpacbkppcgbgj'>
<updatecheck codebase='https://myinternal.fake/helloworld.crx' version='2.0.0.2' prodversionmin='23' />
</app>
</gupdate>
清单.json
{
"manifest_version": 2,
"name": "Hello World",
"version": "2.0.0.2",
"minimum_chrome_version": "23",
"update_url": "https://myinternal.fake/updates/helloworld.xml",
"icons":
{
"16": "icon_16.png",
"128": "icon_128.png"
},
"app":
{
"background":
{
"scripts":
[
"main.js"
]
}
}
}
编辑:我还检查了标题是 Chrome 可接受的标题(据此:http: //developer.chrome.com/dev/extensions/hosting.html)。它将 CRX 文件作为“文本/纯文本”发送,并且不发送标头X-Content-Type-Options: nosniff
,因此它应该是有效的。
此外,当我从 更改为https
时http
,现在当我单击“立即更新扩展”时,扩展会消失一瞬间,这表明它现在正在读取 XML,但仍不接受更新!