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
Yes they are related but their definition depends on how they are used.
Always must be a version number, e.g. 1.0
Usage mode 1 - Only CFBundleVersion is set
Must be a version number, e.g. 1.0. Must match the iTunes Connect Version.
Usage mode 2 - Both CFBundleVersion and CFBundleShortVersionString are set
Must be a build number, e.g. a single integer like 435163.
Must be a version number, e.g. 1.0. Must match the iTunes Connect Version.
Usage mode 2 is the best way to go. Here are some example numbers for an app's upgrade path:
CFBundleShortVersionString CFBundleVersion
1.0 1
1.0.1 2
1.0.2 3
1.2 5 (build 4 was a beta and never released publicly)
1.2.1 6
An extra note on version numbers: If you submit a minor update (e.g. bug fix) to your app you must never miss out periods in the version number, e.g always use 1.0.1 and NEVER 1.01 or you will risk not being able to use certain version numbers in the future because it won't be possible to increment them.