2012-06-28 63 views
0

我使用McCoy tool来“安装”我的install.rdf文件并签署我的update.rdf文件。Firefox插件无法识别Update.rdf文件上的新版本

在我Install.rdf文件我有:

<?xml version="1.0"?> 
<RDF:RDF xmlns:em="http://www.mozilla.org/2004/em-rdf#" 
     xmlns:NC="http://home.netscape.com/NC-rdf#" 
     xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> 
    <RDF:Description RDF:about="rdf:#$e2DK." 
        em:id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}" 
        em:minVersion="4.0" 
        em:maxVersion="15.*" /> 
    <RDF:Description RDF:about="urn:mozilla:install-manifest" 
        em:id="{ext-id}" 
        em:type="2" 
        em:name="Ext X" 
        em:version="1.0.4" 
        em:description="..." 
        em:creator="Bruno Leonardo Michels" 
        em:updateURL="http://www.example.com/dl/update.rdf" 
        em:bootstrap="false" 
        em:updateKey="xxx"> 
    <em:targetApplication RDF:resource="rdf:#$e2DK."/> 
    </RDF:Description> 
</RDF:RDF> 

在我Update.rdf文件我有:

<?xml version="1.0"?> 
<RDF:RDF xmlns:em="http://www.mozilla.org/2004/em-rdf#" 
     xmlns:NC="http://home.netscape.com/NC-rdf#" 
     xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> 
    <RDF:Description RDF:about="rdf:#$D1abg" 
        em:version="1.0.4"> 
    <em:targetApplication RDF:resource="rdf:#$G1abg"/> 
    </RDF:Description> 
    <RDF:Description RDF:about="rdf:#$G1abg" 
        em:id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}" 
        em:minVersion="4.0" 
        em:maxVersion="15.*" 
        em:updateLink="http://www.example.com/dl/ext.xpi" 
        em:updateInfoURL="http://www.example.com/dl/ext.txt" /> 
    <RDF:Description RDF:about="rdf:#$M1abg" 
        em:version="1.0.3"> 
    <em:targetApplication RDF:resource="rdf:#$P1abg"/> 
    </RDF:Description> 
    <RDF:Description RDF:about="urn:mozilla:extension:{ext-id}" 
        em:signature="xxx"> 
    <em:updates RDF:resource="rdf:#$C1abg"/> 
    </RDF:Description> 
    <RDF:Seq RDF:about="rdf:#$C1abg"> 
    <RDF:li RDF:resource="rdf:#$D1abg"/> 
    <RDF:li RDF:resource="rdf:#$M1abg"/> 
    </RDF:Seq> 
    <RDF:Description RDF:about="rdf:#$P1abg" 
        em:id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}" 
        em:minVersion="4.0" 
        em:maxVersion="15.*" 
        em:updateLink="http://www.example.com/dl/ext103.xpi" 
        em:updateInfoURL="http://www.example.com/dl/ext.txt" /> 
</RDF:RDF> 

当我点击 “查找更新” 火狐要求update.rdf URL并获取正确的文件的正确版本(1.0.4)。但它没有做任何事情,不显示任何更新,不更新...它只是呆在那里与版本1.0.3 ...

是不是em:version什么决定了插件版本?我在这里错过了什么?

为了测试我安装,并签署了版本1.0.4,改变了版本,以安装并签署1.0.3,所以我有两个版本不同的号码。我安装了版本1.0.3,我试图通过更新获取1.0.4

回答

1

因为我没有使用https我必须在update.rdf文件中包含em:updateHash下的em:updateLink。我使用从Hashtab生成的SHA1。

em:updateHash="sha1:<hash>" 

并添加散列后,你必须再次签署文件。

+0

我有一个类似的问题,但已经有一个sha1哈希文件,所以不知道我的情况有什么问题。我是否认为sha1哈希是xpi文件? – GStubbenhagen