0

我使用McCoy 工具“安装”了我的 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通过更新。

4

1 回答 1

1

由于我没有使用https,我必须在文件中包含em:updateHash下面em:updateLinkupdate.rdf内容。我使用了从Hashtab生成的 SHA1 。

em:updateHash="sha1:<hash>"

添加哈希后,您必须再次签署文件。

于 2012-06-28T15:44:39.873 回答