Difference between iTunes Connect App Version and Build Version When preparing an App for iOS App Store release in iTunes Connect, there is a field under the App Store tab where you can type in a version number.

But when uploading the builds, under the Activity tab we have a version number that is taken from the info.plist in Xcode.

Why are there two places for the version number?  What is the difference between them?  How are they supposed to be used?  Is there a best practice for this?
It may be necessary to submit multiple builds when submitting or updating an app (due to finding bugs before the app completes review, etc.).  iTC requires that the build numbers be different (and ascending) for each subsequent build submission for same version update to an app.  Thus two different fields, one version number for the App store visible (e.g. marketing) version of the app or app update, and one build number for one or more uploads before app review starts or completes (and without changing the App store visible or marketing version number).

It's also handy when testing many dozens of incremental builds of an app on your devices and iOS Simulators to have some way of telling them apart other than mucking with the marketing version number (which you might want to be a nice clean looking 2.0 or something).