WebExtensions have an ID, which is used in the browser to distinguish between this add-on and other add-ons installed in the browser, and to enable addons.mozilla.org to understand when a submission is an update to an existing add-on, rather than a new add-on.
Depending on the workflow you use and on whether you host your add-on on addons.mozilla.org, you may not have to do anything with the add-on ID at all. This guide helps you decide whether or not you need to do anything with the add-on ID, and if you do, what.
The simple case: avoiding the Add-on ID
You can develop add-ons without ever dealing with the Add-on ID if:
- you are developing using Firefox 48 or later
- your add-on is hosted on AMO (it is "Listed", in the language used by the Distribution guide)
- you do not use the web-ext tool: instead, you test your add-on using the "Load Temporary Add-on" button in about:debugging
- you do not use the AMO API to update your add-on: instead, you update it by visiting its page on addons.mozilla.org and uploading the new version.
In this workflow, the add-on ID's manifest.json file omits the applications
key. To test the add-on, you install it in Firefox using the "Load Temporary Add-on" button in about:debugging. The add-on will be assigned a temporary ID when you do this. If you load the add-on again, it will be given a different ID.
When you are ready to distribute the add-on, upload it to AMO manually. At this point, AMO will assign a permanent ID for the add-on.
When you want to update the add-on, visit the add-on's page on AMO, and