The package manifest: and The package manifest: updateservers and dlid
If you're bundling multiple sub-extensions (a component, a few plugins) into one installable download, you want a Joomla package-type manifest, not just a component manifest. Two blocks matter for what follows:
<extension type="package" version="5.0" method="upgrade">
<name>PKG_YOURPACKAGE</name>
<packagename>yourpackage</packagename>
<version>1.0.0</version>
<updateservers>
<server type="extension" priority="1" name="Your Package Updates">
https://yoursite.com/updates/yourpackage.xml
</server>
</updateservers>
<!-- Required for Joomla's Update Sites page to show a Download Key field at all -->
<dlid prefix="dlid=" suffix=""/>
<files folder="packages">
<file type="component" id="com_yourpackage">com_yourpackage.zip</file>
<file type="plugin" id="yourplugin" group="content">plg_yourpackage_content.zip</file>
</files>
</extension>
GOTCHAWithout the
<dlid> tag, Joomla's Update Sites list has no way of knowing your extension supports a Download Key at all. No badge, no input field — nothing. This is easy to miss because everything else (install, update detection) works fine without it. The tag is only read by one specific code path: InstallerHelper::getDownloadKey().