2012-07-24 72 views
0

我爲自動更新服務寫了一個update.rdf。擴展的自動更新不起作用

在附加概述中,可以執行右鍵單擊「搜索新更新」,然後firefox在我的測試web空間上找到新版本,下載並「安裝」它。但重啓之後,我有像以前一樣的版本,它沒有改變xpi文件。這裏有一些圖片和代碼片段。馬布你有一個主意。

http://s12.postimage.org/f68kptdy3/script_error1.png

http://s12.postimage.org/57nm3c4ij/script_error2.png

重啓後我有沒有變化0.2.3版本一次。

的install.rdf的版本0.2.3

代碼:選擇帶有簽名的所有

<Description about="urn:mozilla:install-manifest"> 

     <em:id>[email protected]</em:id> 
     <em:type>2</em:type> 
     <em:name>MegxBar</em:name> 
     <em:version>0.2.3</em:version> 
     . 
     . 
     . 
     <em:updateURL>http://home.arcor.de/eniac2000/update.rdf</em:updateURL>   <em:updateKey>MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDO65zOLKafZWtmX/cvs9ELMT1VkCQ8GlZNbRMku0su8VxDr+k4eGFYUupHWy2Ll+rfXJ43k+nYQvYHZRoU94DtiCCk4GEpfGytQPCCHOl30aV9elJH+cmeSKZiejPvMptZfp9GXTcLWgVycPVwS59J/LFJ2St2QQSv2hgWV1dKlwIDAQAB</em:updateKey> 
     <em:targetApplication> 
     <Description> 
      <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <!-- Firefox --> 
      <em:minVersion>1.5</em:minVersion> 
      <em:maxVersion>15.0</em:maxVersion> 
     </Description> 
     </em:targetApplication> 
    </Description> 
</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:#$ZpuSg3" 
        em:id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}" 
        em:minVersion="1.5" 
        em:maxVersion="15.0" 
        em:updateLink="http://home.arcor.de/eniac2000/MegxBar_0.3.3.xpi" 
        em:updateHash="sha1:02226eedd92e895379881ec919ce07c7f73ff9a9" /> 
    <RDF:Seq RDF:about="rdf:#$VpuSg3"> 
    <RDF:li RDF:resource="rdf:#$WpuSg3"/> 
    </RDF:Seq> 
    <RDF:Description RDF:about="rdf:#$WpuSg3" 
        em:version="0.3.3"> 
    <em:targetApplication RDF:resource="rdf:#$ZpuSg3"/> 
    </RDF:Description> 
    <RDF:Description RDF:about="urn:mozilla:extension:[email protected]" 
        em:signature="MIGTMA0GCSqGSIb3DQEBDQUAA4GBAFOK3mZUdai/KCVRtHNvTYPV7Hu3+3b9ymfkGM3u08m0O7Ltl1tc0guYtZ74i+qUYC8T+66pgK/LeXnwzAHFUBcEfXFZGfwH8ZG8SR/lyZaUzSsAM9CPoYv1YIM/PjLfHtIEJdzROW1HG31YlsP3nouT5wSyEhvJiNQvAUwP37Aj"> 
    <em:updates RDF:resource="rdf:#$VpuSg3"/> 
    </RDF:Description> 
</RDF:RDF> 

的install.rdf中版本0.3.3的xpi在服務器上

<?xml version="1.0" encoding="UTF-8"?> 
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
    xmlns:em="http://www.mozilla.org/2004/em-rdf#"> 

    <Description about="urn:mozilla:install-manifest"> 

     <em:id>[email protected]</em:id> 
     <em:type>2</em:type> 
     <em:name>MegxBar</em:name> 
     <em:version>0.3.3</em:version> 
     . 
     . 
     . 
     <em:updateURL>http://home.arcor.de/eniac2000/update.rdf</em:updateURL> 
     <em:updateKey>MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDO65zOLKafZWtmX/cvs9ELMT1VkCQ8GlZNbRMku0su8VxDr+k4eGFYUupHWy2Ll+rfXJ43k+nYQvYHZRoU94DtiCCk4GEpfGytQPCCHOl30aV9elJH+cmeSKZiejPvMptZfp9GXTcLWgVycPVwS59J/LFJ2St2QQSv2hgWV1dKlwIDAQAB</em:updateKey> 
     <em:targetApplication> 
     <Description> 
      <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <!-- Firefox --> 
      <em:minVersion>1.5</em:minVersion> 
      <em:maxVersion>15.0</em:maxVersion> 
     </Description> 
     </em:targetApplication> 
    </Description> 
</RDF> 

我創建了MCCOY簽名,並使用替代哈希生成器的Windows

回答

1

的哈希值。如果我從你的服務器下載MegxBar_0.3.3.xpi,並期待在install.rdf文件裏面我看到:

<em:version>0.2.3</em:version> 

所以Firefox正確更新您的擴展並安裝新版本。唯一的問題是服務器上的「新」版本是舊版本,儘管文件名稱。