Chrome扩展程序的自动更新无法正常工作

3
我将尝试实现Chrome扩展的自动更新功能。但由于某些原因它无法正常工作。我在GitHub上托管了一个updates.xml文件,我看到它已被下载(下载计数器显示这一点)。但是扩展程序的最新版本从未被下载。
我的manifest.json如下:
"version": "0.14.0",
"update_url": "https://github.com/downloads/PeeHaa/cv-pls/updates.xml",

我的 updates.xml 如下所示:

<?xml version='1.0' encoding='UTF-8'?>
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
  <app appid='bcbifciedokdgkokbbfippkbecnkpclj'>
    <updatecheck codebase='https://github.com/downloads/PeeHaa/cv-pls/cv-pls.0.14.0.crx' version='0.14.0' />
  </app>
</gupdate>

我已经检查了appid和下载链接,它们都是正确的。
有人知道出了什么问题吗?这是否与它托管在GitHub上有关?

过去使用相同的设置自动更新是否有效? - abraham
@abraham nopez. 从未工作过。 - PeeHaa
2个回答

3
我之前尝试过这种方法,但也失败了。update.xml文件下载正确,但最新版本的应用程序无法安装。
我发现它不起作用是因为github没有提供正确的标头。如果您查看hosting documentation,则内容类型标头应为“application/x-chrome-extension”。
我只是编写了一个简单的php脚本来为我提供文件:
<?php
$file = "";
header("Content-type: application/x-chrome-extension");
header("Content-Disposition: attachment; filename='extension.crx'");
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . filesize($file));
echo readfile($file);
exit;

我刚刚运行了 curl -v --head http://cloud.github.com/downloads/PeeHaa/cv-pls/cv-pls.0.14.0.crx 命令,并且响应头中包含了 Content-Type: application/x-chrome-extension - abraham

1

看起来update.xml和crx URL都从https://github.com重定向到https://cloud.github.com。这是我能想到的唯一导致更新失败的原因。尝试将update.xml代码库URL更新为包含cloud


仍然无法正常工作。我看到我的最新updates.xml被下载了多次,但是我没有看到扩展本身的任何下载 :( - PeeHaa
1
我打算在这个周末进行一些测试,因为看起来应该可以工作。我知道之前我用Gists更新过.xml文件,而且它也运行良好。如果我没有发布更新,请在星期天提醒我。 - abraham

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接