UPDATE:解決了其中的一部分,而不是其他爲什麼我的打包Chrome擴展沒有更新?
我有CRX現在更新(這不是重建)。
但是,Chrome將不接受https或URL中的XML或CRX。
我相信#2是因爲它是一個自簽名證書。有誰知道是否有解決方法? (這純粹是爲了發展,所以內部託管)
原貼:
我創建了一個打包的擴展,是在我的內部網站託管,但添加通過從桌面拖動到Chrome(因爲Chrome將不允許通過外部網站安裝打包的擴展程序 - 請參閱此處:After adding ExtensionInstallSources preference with my URL to Chrome Preferences, still won't allow installing ".crx" packaged app)。
清單將update_url
設置爲位於我網站上的XML文件。該XML文件具有在updatecheck codebase='...'
下設置的crx文件的url。這兩個文件都存在於網站上,並且可以找到。我還在XML文件和manifest.json
中修改了2.0.0.2
到2.0.0.2
的版本號。我還對擴展的index.html文件進行了更改。
我檢查了appid
,它在XML文件和Chrome中是一樣的。
儘管單擊「更新擴展名」按鈕約50次,並等待10分鐘,但它不會更新。
注:我做了別名,其中網站託管在我的hosts文件,myinternal.fake
內部IP,但192.168.1.108這個工作在兩個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>
manifest.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"
]
}
}
}
編輯:我也檢查和頭是一個可接受的鉻(根據這個:http://developer.chrome.com/dev/extensions/hosting.html)。它將CRX文件作爲「text/plain」發送,並且不發送標頭X-Content-Type-Options: nosniff
,因此它應該是有效的。
此外,當我從https
更改爲http
時,現在當我點擊「立即更新擴展名」時,擴展消失了一秒鐘,表明它正在讀取XML,但仍然不接受更新!