Developer Docs
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 your InfoPlist.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.
Copy link