我使用McCoy tool来“安装”我的install.rdf文件并签署我的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>
当我点击“查找更新”时,Firefox会请求update.rdf url并使用正确的版本(1.0.4)检索正确的文件。但它没有做任何事情,没有显示任何更新,也没有更新...它只是停留在版本1.0.3 ......
em:version
是什么决定了插件的版本?我在这里缺少什么?
要测试我安装并签署了版本1.0.4
并将版本更改为已安装和签名的1.0.3
,因此我有两个版本,其中包含不同的编号。我安装了版本1.0.3
,我正在尝试通过更新1.0.4
。
答案 0 :(得分:1)
由于我没有使用https
,我必须在em:updateHash
文件的em:updateLink
下加update.rdf
。我使用了从Hashtab生成的SHA1。
em:updateHash="sha1:<hash>"
添加哈希后,您必须再次对该文件进行签名。