Classic Manual
  • Welcome to RapidWeaver
  • Purchasing RapidWeaver
  • Licensing and Activation
  • Subscription FAQ
  • General FAQ
  • 📖User Manual
    • Installing and Activating RapidWeaver
    • Getting Started with RapidWeaver
    • Project Window
    • Preferences
    • Page Types
      • Blog
      • Contact Form
      • File Sharing
      • HTML
      • iFrame
      • Markdown
      • Offsite Page
      • Photo Album
      • Sitemap
      • Styled Text
    • Publishing
      • Publish to a Web Server
      • Publishing to Your Mac
      • Publishing to Chillidog
      • Multiple Publishing Destinations
      • How to fix Publishing Issues
        • Upload Logs
        • Upload Errors
    • Features
      • Health Check
      • Live Browser Preview
      • Privacy
      • Project Backup
      • Macros (Advanced)
      • Resource Browser
      • Simulator
      • Site Badge
      • Themes
    • Keyboard Shortcuts
    • How to
      • Update License Key in RWC
      • Share Your Project File
      • Upgrade Projects
      • Add Google Analytics
      • Improve Search with SEO
      • Embed a YouTube Video
      • Embed a Vimeo Video
      • Edit an .htaccess File
      • Build an Online Store
      • Edit Your Website Online (CMS)
      • Create a Members Area Using Sitelok
    • Troubleshooting
      • How to fix "Couldn't obtain plugin principle class"
      • How to Diagnose an Issue
      • How to Report a Bug
      • How to Locate Your Addons and Preferences
      • How to Send or Share Your Project (moved)
    • Resources
  • 🧩Addons
    • What are Addons?
    • Premium Themes
      • 🗻Aspen
        • Aspen FAQ
        • Social Icons
        • Aspen Version History
      • 🦸Marvel
        • Marvel FAQ
        • Social Icons
        • Marvel Version History
      • 👑Royale
        • Royale FAQ
        • Social Icons
        • Royale Version History
  • 👷Developers
    • Addon Overview
    • Themes
      • Theme Introduction
      • Theme Syntax Tags
      • Theme.plist Syntax
      • Theme Info.plist
    • Plugins
      • Plugin SDK
    • Marketplace Developer Guide
  • 📁Legal
    • Acknowledgements
    • Subscription Terms of Service
    • Privacy Policy
    • EULA
Powered by GitBook
On this page
  • Theme Updates via Sparkle
  • Theme Version Numbering

Was this helpful?

Export as PDF
  1. Developers
  2. Themes

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:

RWAddonAuthor, string
RWAddonManagerIconAsset, string
RWAddonSupportURL, string
RWThemeIsResponsive, bool
CFBundleIdentifier, string
CFBundleShortVersionString, string
CFBundleVersion, string
SUFeedURL, string

Here is an example of an info.plist from a standard theme:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>CFBundleIdentifier</key>
	<string>com.realmacsoftware.future</string>
	<key>CFBundleShortVersionString</key>
	<string>1.0</string>
	<key>CFBundleVersion</key>
	<string>1.0</string>
	<key>RWAddonAuthor</key>
	<string>Realmac Software</string>
	<key>RWAddonSupportURL</key>
	<string>http://realmacsoftware.com/support</string>
	<key>RWBannerOptions</key>
	<dict>
		<key>RWThemeBannerFallbackImage</key>
		<string>images/banners/default.jpg</string>
		<key>RWThemeBannerImageRecommendedHeight</key>
		<integer>720</integer>
		<key>RWThemeBannerImageRecommendedWidth</key>
		<integer>1080</integer>
	</dict>
	<key>RWThemeIsResponsive</key>
	<true/>
	<key>RWThemeSupportsBannerImages</key>
	<true/>
</dict>
</plist>

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 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.

PreviousTheme.plist SyntaxNextPlugins

Last updated 11 months ago

Was this helpful?

👷