For distributing an app to the Apple App Store, I prefer to duplicate the release target by clicking on the project name in the project navigator and then click on the project name and in the info tab click the plus sign under configurations and duplicate the release configurations. I then call this the Distribution configuration.
In the future, any changes to the Release configuration should also be made to the Distribution configuration. The only difference between the two configuration should be the code signing. You could also change the bundleID if you wanted to do an Enterprise distribution, since Apple does not allow using the same bundle ID for App Store Distribution and Enterprise Distribution.
Then click Product -> Scheme -> Edit Scheme and select the Distribution build configuration for creating an Archive by clicking on Archive on the left and then selecting the Distribution configuration you just created.
Then setup your App ID and Provisioning Profile in the member center, download the provisioning profile and double click or drag it onto the Xcode icon.
You should have already setup your App Developer Account under Xcode -> Preferences -> Accounts.
Then select your Code signing and provisioning profile for the target you want to publish. Make sure it is under the distribution configuration.
Read the Article Slackmoehrle recommended and verify that you have your build settings, iOS Deployment Target (minimum you want to support), build number increased from previous submitted version, and other settings configured. If you publish and forget to add a requirement that restricts the target audience of your app, it might not be possible to restrict your distribution later by adding a requirement.
After you are confident that you are ready to submit your app, select the target you want to deploy, such as AppName-mobile iOS Device and then select Product -> Archive.
Then choose Window -> Organizer, select the app you want to submit, and then you can validate and submit your app from Organizer. Or you can use the Application loader GUI or command line to upload your app. Scripting the GUI can be very useful if you want to upload several apps that have a similar bug.
After uploading your app, you will need to login to iTunes Connect and attach the build to your app and then submit the app for review from within iTunes Connect.