title: Firefox add-on signed by Mozilla “appears to be corrupt” when trying to install locally
body: <p>I created a simple Firefox extension (using WebExtensions) that I want to use every day in Firefox without publishing it on addons.mozilla.org (AMO). I was able to install it temporarily and verify that it works by going to <code>about:debugging</code>, clicking on the "Load Temporary Add-On" button, and opening the manifest.json file.</p>
  
  <p>Since I want to use the extension without having to go through that process every time I restart Firefox, I packaged it into an XPI file and tried installing it like a regular local extension. I archived the two files (manifest.json, content_script.js) and the one directory (icons/) into a ZIP file and renamed it to test.xpi. At <code>about:addons</code>, I clicked the gear icon, selected "Install Add-on From File", and selected the test.xpi file. But Firefox always gave me the error</p>
  
  <blockquote>
    <p>"This add-on could not be installed because it appears to be corrupt".</p>
  </blockquote>
  
  <p>In creating the ZIP file, I was careful to keep the manifest file at the top of the archive, and <a href="https://stackoverflow.com/a/28511239/8513939">did not include the containing folder itself</a>. I tried following <a href="https://stackoverflow.com/a/31043045/8513939">some detailed instructions</a> on installing an XPI file locally, and even installed Cygwin in order to get access to the "zip" utility that the instructions mention, but I'm not able to find that utility in any of the Cygwin folders.</p>
  
  <p>To see if the problem was a lack of a Mozilla signature, I submitted it to AMO (addons.mozilla.org) for signing. AMO signed it and provided me with a new XPI file, which I assumed to be installable since it was signed. But this officially created and signed XPI file still got the error that it was corrupt.</p>
  
  <p>Does anyone have ideas as to how I can figure out what's causing this?</p>