2012-06-28 1 views
0

McCoy tool을 사용하여 install.rdf 파일을 "설치"하고 내 update.rdf 파일에 서명했습니다. 내 Install.rdf 파일에Firefox addon이 Update.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:#$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> 

를 내가 가지고 :

<?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> 

내가 "업데이트 찾기"를 클릭하면 파이어 폭스는 후 업데이트 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을 포함시켜야합니다. Hashtab에서 생성 된 SHA1을 사용했습니다.

em:updateHash="sha1:<hash>" 

해시를 추가 한 후에는 파일에 다시 서명해야합니다.

+0

비슷한 문제가 있지만 이미 파일에 sha1 해시가 있으므로 내 경우에 무엇이 잘못된 것인지 잘 모릅니다. sha1 해시가 xpi 파일에 있다고 가정 할 때 나는 맞습니까? – GStubbenhagen

관련 문제