Anastasiia, iOS Engineer at Intellectsoft, shares her simple check-list for publishing app on the AppStore. It summarizes some of the tasks you’ll need to complete for a successful product launch.
Here at Intellectsoft we’ve submitted really a lot of apps to AppStore. The submission process for each one may look similar, but in fact is unique for every app.
When an application is small, submission looks quite easy: prepare build in iTunesConnect, prepare provisions, build and sign and there you go! Although, when you add backend to your application, the number of steps grows: now you need to switch release to a production server, and make sure that a server handles correct users from the new version and slowpokes. Continuous submitting makes things even more complicated: it’s important to check that app update will be smooth and current users won’t lose their data.
It’s important to check everything before pressing the ‘submit’ button because fixing errors on a live app is too expensive.
This is a checklist for iOS developer before submitting the app.
iTunesConnect & developer.apple.com
- Install publisher’s provision profile (containing private key p12).
- Install distribution certificate containing your app’s BundleID.
- Prepare app in iTunesConnect for your app’s BundleID:
** Provide description and localizations for all relevant languages.
** Provide screenshots/videos in iTunesConnect.
- Make sure that APNS certificate includes your app’s BundleID.
- You have created distribution APNS certificate.
- Your server is using distribution APNS certificate.
- Check that notifications are working on different iOS versions (pay attention to iOS8 where API was changed).
- Do not hardcode anywhere in sources things like isBeta=YES orDEBUG=YES.
- Make sure that the app icon or name doesn’t contain “beta” word.
- Update app version and build version. Never hardcode version inside app (use CFBundleVersion instead).
- IMPORTANT Make sure that the new release is installed over the old version in the correct way:
** Install app from AppStore. Create ad-hoc build and install it over the old version.
** Check that data from NSUserDefaults is read in the correct way (app doesn’t crash trying to read non-existing keys).
** Check that user doesn’t lose any of his info after update.
- Connect application to production server environment.
- Do not send beta=1 (or similar) in any server requests.
- If the app is configured from server (for example, it downloads DB), make sure that the configuration is updated in the correct way. If the configuration needs to be updated every N hours — it really does.
- Enable crash analytics tools like Crashlytics.
- Enable flow analytics tools like Flurry.
- Disable NSLog calls. At least this way:
#define NSLog(…) /* */
- Enable IAPs for your app id in developer.app.com
- Enable IAPs in Xcode Build Settings
- Submit finance docs (without doing it, app doesn’t receive even a list of in-apps) in iTunesConnect:
- Make sure, that if you’ve hardcoded IAPs IDs, they are the same in iTunes Connect app too.
- IAPs are displaying correctly. Test that user can make purchases.
- IAPs are submitted for review! Otherwise, in-apps won’t be available even if app version was reviewed.
If your application has integration with services like Parse.com or Facebook, you can find more details in a full version of our checklist on Github.
If you want to add some points based on your experience, feel free to contribute: the checklist is totally open source.