3

我正在尝试实现Chrome 扩展程序的自动更新功能。但由于某种原因,它不起作用。我updates.xml在 GitHub 上托管了一个文件,我看到它已被下载(下载计数器显示此内容)。但是从未下载过最新版本的扩展程序。

我的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了下载 URL,它们都是正确的。

有人知道这里出了什么问题吗?它与托管在 GitHub 上的事实有关吗?

4

2 回答 2

3

我以前尝试过这种方法,但也失败了。update.xml 文件已正确下载,但我的应用程序的最新版本无法安装。

我发现它不起作用,因为 github 没有提供正确的标题。如果您查看托管文档,内容类型标头应该是“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;
于 2012-04-07T18:42:48.060 回答
1

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

于 2012-04-04T22:02:31.163 回答