Theme Info.plist
The Info.plist stores basic information about the Theme, such as its name, author, and version number.
It supports the following keys:
Here is an example of an info.plist from a standard theme:
Theme Updates via Sparkle
RapidWeaver Classic offers a way for developers to offer theme updates via sparkle. Theme updates work exactly the same way as plugin updates have always done.
To take advantage of this feature you’ll need to add a SUFeedURL
key to the Info.plist
of your theme. The SUFeedURL
key should reference the Sparkle RSS feed on your server.
If you’re unfamiliar with the XML AppCast format there’s some documentation on the Sparkle website, here: Publishing an update - Sparkle: open source software update framework for macOS
Theme Version Numbering
When comparing releases, we’ll look at the CFBundleVersion
field in your addon’s Info.plist file. If this isn’t increased, we’ll assume it’s not an updated addon. Apple has this to say about CFBundleVersion
:
CFBundleVersion (String - iOS, OS X) specifies the build version number of the bundle, which identifies an iteration (released or unreleased) of the bundle. The build version number should be a string comprised of three non-negative, period-separated integers with the first integer being greater than zero. The string should only contain numeric (0-9) and period (.) characters. Leading zeros are truncated from each integer and will be ignored (that is, 1.02.3 is equivalent to 1.2.3). This key is not localizable.
When displaying the version string to users, we’ll use CFBundleShortVersionString
. This isn’t used for calculating updates - it’s only used in UI. Apple has this to say:
CFBundleShortVersionString (String - iOS, OS X) specifies the release version number of the bundle, which identifies a released iteration of the app. The release version number is a string comprised of three period-separated integers. The first integer represents major revisions to the app, such as revisions that implement new features or major changes. The second integer denotes revisions that implement less prominent features. The third integer represents maintenance releases.
The value for this key differs from the value for
CFBundleVersion
, which identifies an iteration (released or unreleased) of the app. This key can be localized by including it in yourInfoPlist.strings
files.
In most cases, you’ll want these to be the same value.
When comparing version numbers, no other fields are used. To be totally clear, do not use RWVersion in your Theme.plist file.
Plugins should also set the RWPluginAPIVersion field in their Info.plist and we’ll change certain behaviour based on their selection. This does not increment in line with the RapidWeaver release version.
Last updated
Was this helpful?