Skip to content

Other desktop updaters ​

These protocols run beside native JSON check: the updater fetches the listing document; official SDKs do not read them. Missing listing or unknown document name → plaintext 404. OS/arch/channel pins: Store listings.

Console: project Settings → Store listings → New listing.

UpdaterprotocolURL to paste
Squirrelsquirrel{listing}/RELEASES (case-sensitive RELEASES)
ClickOnceclickonce{listing}/MyApp.application (must end with .application)
AppImageUpdateappimage{listing}/latest.zsync (must end with .zsync)
WinGet REST sourcewingetlisting root; documents information, manifestSearch, packageManifests
MSIX / App Installermsix{listing}/app.appinstaller (must end with .appinstaller)

Replace host, project slug, and listing slug with the console Store URL.

text
https://updates.example.com/api/v1/projects/myapp/store/squirrel/stable/RELEASES
text
https://updates.example.com/api/v1/projects/myapp/store/clickonce/stable/MyApp.application
text
https://updates.example.com/api/v1/projects/myapp/store/appimage/stable/latest.zsync
text
https://updates.example.com/api/v1/projects/myapp/store/winget/stable
text
https://updates.example.com/api/v1/projects/myapp/store/msix/stable/app.appinstaller

WinGet PackageIdentifier lives in listing identifiers. MSIX may override the root Uri with identifiers appinstaller_uri. Squirrel RELEASES uses relative filenames; private signed URLs are not written into RELEASES rows.

Failures ​

Plaintext 404: missing listing, protocol off, or a document name that is not in the table. Auth failure → 401 UNAUTHORIZEDMissing/invalid credentials.

Related: Electron, Sparkle, Tauri.