Versioning is a difficult topic. Different developers use different schemes to number major and minor versions and to designate development or beta versions. Some developers also use build numbers to distinguish different versions between public releases.
Apple defines a total of three Info.plist keys to store version information for a bundle. Unfortunately, there is no clear consensus how these should be used. But first, a description of these three keys:
CFShortVersionStringgives the "marketing version" of a release. It is displayed in the About box and in the column view of the Finder. Cowry displays this version string in the top part of the presentation window.
CFGetVersionStringcan be used for a more verbose version information text. It is displayed in the Finder's "Get Info" inspector. Some developers include the release date or their copyright string here. Cowry displays this version string on the "More info" tab.
CFBundleVersionstores a technical version number, with the goal of being unique. If you have a build number or a similar number (e.g. the Subversion revision number), it can be stored here. This key cannot be localized, and it's only displayed in the About box alongside the short version.
Unfortunately, the version keys are used very differently "in the wild". That makes it hard for tools like Cowry to find the version number to compare against the current version determined by an online version check. If you can, please have a look at the following recommendations and follow them in you application.
Always provide all three keys. Set
CFShortVersionString to the "marketing"/"release" version, e.g. "3.2.0" and do not localize it. Set
CFGetVersionString to the same value in Info.plist, but localize it to something with more information, like the application's copyright and/or the release date. If you have a separate build number or a Subversion repository revision number, put that into
CFBundleVersion. Otherwise, set
CFBundleVersion to the same value as
<key>CFBundleGetInfoString</key> <string>3.2.0</string> <key>CFBundleShortVersionString</key> <string>3.2.0</string> <key>CFBundleVersion</key> <string>237</string>
CFBundleGetInfoString = "3.2.0, Copyright © 2003-2006 MyCompany, Inc."; NSHumanReadableCopyright = "Copyright © 2003-2006 MyCompany, Inc.";