托管扩展程序会安装带有错误appid的周旧代码吗?

时间:2012-03-14 12:38:41

标签: google-chrome google-chrome-extension

我正在尝试在自己的服务器上托管Chrome扩展程序。我有一个非常奇怪的问题,每隔一段时间我就会通过将浏览器指向.crx来安装扩展程序,它会安装一个带有不同appid的扩展版本,其代码库可以追溯到几个星期前。

我怀疑我在某种程度上有2个扩展ID。一个代表当前的代码库,另一个代表了前一段时间进入混合代码。

有没有办法可以防止这种混乱发生?

更长的说明
在我的扩展开发过程的最开始,我的manifest.json中的版本号被设置为“1.0”一段时间。

一旦开发开始稳定,我会将版本号重置为“0.0.1”,并在每次推送更改时将其从该点开始碰撞。

每当我碰到版本号时,我都会将扩展名和scp打包到我的服务器上。该过程的重要部分如下:

打包扩展程序:

'/Applications/Google Chrome.app/Contents/MacOS/Google Chrome' --pack-extension=<PATH TO UNPACKED EXTENSION> --pack-extension-key=<GENERATED KEY>

这是我第一次打包扩展程序时由chrome生成的.pem私钥(我想,自从我前一次打包以来很难记住)。

将.crx复制到服务器:

scp -P <PORT> extension.crx <PATH TO SERVER>

将update.xml复制到服务器:

scp -P <PORT> update.xml <PATH TO SERVER>

update.xml:

这是标准的update.xml文件。版本号和.crx位置符合预期。唯一可能有趣的是appid。我一度从Chrome扩展程序管理页面获得此appid

<?xml version="1.0" encoding="UTF-8"?>
<gupdate xmlns="http://www.google.com/update2/response" protocol="2.0">
  <app appid="cdlhmlllfilohhmmpakbcdfaabannega">
    <updatecheck codebase="<EXTENSION CRX LOCATION>" version="0.0.21"/>
  </app>
</gupdate>

此时,我可以ssh进入我的服务器,在那里解压扩展,检查版本号并阅读代码库,所有内容都将按预期更新。

然后,我会将浏览器指向<EXTENSION CRX LOCATION>并安装扩展程序。版本号错误,appidupdate.xml中的版本号不匹配,代码库将从几周前开始。

1 个答案:

答案 0 :(得分:0)

XML和manifest.json中的扩展ID必须相同。

对于未来的读者:当使用相同的.pem时,扩展名可以使用相同的扩展ID打包。

有关Chrome网上应用店中extensionID的问题,请参阅:
Packaging > Uploading a previously packaged extension to the Chrome Web Store