-
Notifications
You must be signed in to change notification settings - Fork 269
Appcast Feeds
WinSparkle shares its updates checking mechanism with OS X Sparkle. It reads information about available versions from an appcast — a RSS 2.0 feed with some extensions.
The following snippet shows a sample RSS 2.0 feed with an item
element representing the appcast:
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle">
<channel>
<title>WinSparkle Test Appcast</title>
<description>Most recent updates to WinSparkle Test</description>
<language>en</language>
<item>
<title>Version 1.5.5880</title>
<sparkle:releaseNotesLink>
https://your_domain/your_path/release_notes.html
</sparkle:releaseNotesLink>
<pubDate>Fri, 06 Feb 2016 22:49:00 +0100</pubDate>
<enclosure url="https://your_domain/your_path/setup.exe"
sparkle:version="1.5.5880"
length="0"
type="application/octet-stream" />
</item>
</channel>
</rss>
Note that, in this example, the enclosure
element's length
is 0. While WinSparkle works without the length
attribute, the RSS Best Practice Profile recommends setting length
to 0 in case a publisher can't determine the enclosure's size.
See Sparkle documentation for detailed information about the feed format. Currently not all options are supported by WinSparkle such as DSA signatures. See below for additional supported extensions.
Appcasts are accessed over HTTP, so it's enough to upload its XML file to your web server.
Sparkle feeds format allows specifying update's platform with the sparkle:os
attribute, which makes it possible to have e.g. files for both OS X and Windows in a single appcast. This was more of a theoretical possibility, but WinSparkle adopts and respects sparkle:os
. The attribute can have one of the following values:
-
windows
for any Windows downloads -
windows-x86
for 32-bit Windows -
windows-x64
for 64-bit Windows. Notice that this will only be used by 64-bit WinSparkle.dll, it does not check the OS bitness. In other words, 32-bit WinSparkle.dll will not use this item even if running on 64-bit Windows in WoW64 mode.
On Windows, the enclosure is typically some kind of installer — a MSI, InnoSetup etc. It is often useful to pass additional arguments to the installer when launching it, e.g. to force non-interactive installation with reduce UI (notice that the installer shouldn’t be completely invisible, because neither WinSparkle nor the hosting application is showing any UI at the time). The sparkle:installerArguments
extension attribute can be used for this purpose.
Useful values for common installers are listed below:
Installer | <sparkle:installerArguments> |
Notes |
---|---|---|
InnoSetup | /SILENT /SP- |
Shows only progress and errors, no startup prompt. (docs) |
MSI | /passive |
Unattended mode, shows progress bar only. |
|
App update framework for Windows, inspired by Sparkle for OS X. https://winsparkle.org/