When I asked myself this question I got my original information from something similar to this post which talks about using CFBuildNumber
and CFBuildDate
and provides some clever scripting ideas to generate them.
After an exhaustive search I couldn't find any official Apple documentation on the use of CFBuildNUmber
/CFBuildDate
in any iOS project or recent OSX projects. The Information Property List Key Reference (Core Foundation Keys) also has no reference to them so my conclusion was they aren't official and just use CF as a prefix to be similar to the existing Core Foundation keys.
To your questions I believe #2, #3 and #4 (as you suspected) are the case due to lack of any official Apple documentation on the two keys.
- They are not part of CF; the convention is to use CF anyway.
- They can be called anything; CF just makes them match the other CF keys.
- Their name doesn't matter, they can be called what you want.
I can't speak for OSX development, but from the iOS side the two keys provided for these purposes are CFBundleShortVersionString
and CFBundleVersion
. The former being the short App Store visible version and the later being the extended version with addition digits if required.
I use a build number generated by a CI server and append it to the end of theCFBundleVersion
key at compile time. If you wanted to add the date you could add it to the same key.