Apple's doc could have been more clear on how to submit an update version.
As asked in the title, What's the difference between
Are they related in any way?
Yes, they are related. They all refer to the version of your application.
iTunes Connect
This is the version number shown in the App Store; This must be a pure version number like 1.2.3
Bundle Version (CFBundleVersion)
This doesn't need to be a pure version number. This can be something like 12345
or 1.2.3 (Build 12345AB)
. This is shown in the About window for Mac OS X apps for example and is often more a "Build Number" than a "Version Number".
Bundle Version String (CFBundleShortVersionString) This value is used as the "real" version number. This must be the same string as used for the version in iTunes Connect.
Update:
As pointed out by @snlehton, the CFBundleVersion has to be a pure version number like 1.2.3
when you want to upload your application to the (iOS) App Store.