Bookmark this blog post, it was useful for me: blogpost
It contains very detailed lists for sending applications, as well as for launching a new application.
It contains such useful points:
In the Edit Schema section of Xcode, the Archive should be set to Release. A build release should hide log entries and disable any test code / test screens used for development.
NOTE. Due to compiler optimization, assemblies can sometimes be released that function differently than debug assemblies. Itβs best to start testing the release a few days before the release comes to the App Store in order to fix any possible problems. Verify that the application is communicating with the correct production servers (using HTTPS).
Make sure all test screens are hidden.
Make sure that no sensitive data is printed on the console.
Verify that Google Analytics is running with the correct production account.
Make sure services like Urban Airship are working with the right manufacturing records.
I also found another useful link :
APNS
Make sure the APNS certificate includes your BundleID applications.
You have created an APNS distribution certificate.
The server uses the APNS distribution certificate.
Check that notifications work in different versions of iOS (pay attention to iOS8, where the API was changed). Versions
Do not print things like isBeta = YES or DEBUGGING = YES anywhere in the sources.
Make sure the appβs icon or name does not contain the word beta.
Update application version and build version. Never app (use CFBundleVersion instead).
IMPORTANT Ensure that the new version is installed on top of the old version:
** Install the application from the AppStore. Create ad-hoc and install it on top of the old version.
** Check that data is read correctly from NSUserDefaults (the application does not start an attempt to read non-existent keys).
** Make sure that the user has not lost his information after the update.