How to Prepare Your iOS App for Distribution

Getting an application into the App Store is an exciting moment in any developer’s career. Despite the excitement — distributing your application to the App Store and to beta testers can pose somewhat confusing problems for even the most experienced developer — this article aims to point the budding App Store entrepreneur in the right direction to conquer both the Mac App Store and the iOS App Store.


The first thing one should consider — before even thinking about selling an application on any medium — is beta testing your application within a small team of dedicated people that know what they’re talking about.

In my own experience, the hardest part of the whole beta process is actually ‘hiring’ people to test your app. I can guarantee that only about 40% of the people you ‘hire’ will actually provide good, in-depth and useful feedback on your app for every beta release you push out. I have found that the best ways to get people to beta test is to create a simple contact form on a website that you can quickly redirect people to (for example,

But how do I actually get traffic to my beta website? My simple answer to that would be: post about it! I have found Stack Overflow and MacRumors Forums to be particularly useful when it comes to getting people interested in your application.

Once you have a reasonable number of beta testers that have signed up with their information and details, you’re ready to build up your beta team. When you actually come to doing this, you’ll find that you have two options available to yourself.

Option 1

Simple ad-hoc distribution. This option is possibly the least efficient of the two. Ad-hoc distribution is good if all you want is communication via email and don’t want anything too fancy. You simply create a Provisioning Profile in the iOS Dev Center and add your beta tester’s device UDIDs to it. Then archive your application with the Distribution certificate and send out the .ipa application via email and rely on your testers to get back to you with screenshots, crash logs, feedback and comments manually.

As I said, only about 40% of all of your testers will get back to you with good, decent comments. Furthermore, with this method, testers then have to sync their provisioned devices with iTunes and sync the application as if it were any ordinary application.

Option 2

TestFlight. TestFlight has been a godsend to developers. TestFlight requires you to create a Provisioning Profile for all of your device UDIDs and add them to the iOS Portal. You archive the application, but then you upload the build and TestFlight sends out an email to your team, which they’re able open the email on their device and install without even having to connect to iTunes once.

TestFlight is the most efficient method for beta-testing as it provides details on crashes and provides an easy way for people to send feedback and comments. What’s more, TestFlight has recently released an SDK that allows the developer to add checkpoints, push buttons to send feedback and even ask your testers why they chose to do something over something else.

Obviously, TestFlight does indeed take care of all the tedious tasks that come with beta testing and I truly cannot recommend it enough for any developer — however if you do full control when doing a no-frills ad-hoc .ipa distribution then option one is the way forward for as you don’t have to rely on a third-party vendor.

When beta testing I have learnt many, many lessons – some positive, some not so good. I have learnt that even if you have hundreds of beta testers, you should have at least three of your own iOS devices to test your app on to get truly reliable feedback. However, the developer needs to remember that nobody else using your application looks at it the same way you do — it’s like that old cliché: nobody cares about you, as much as you do — this is the same for your apps. I have also learnt that beta testing takes time and you shouldn’t anticipate a reliable and accurate beta testing program if you want to be done with the testing within one week, regardless of the size and complexity of your application. What’s more, I have learnt that, during testing, your beta testers are the most important people in the world – you need to thank them for their ideas and comments constantly as they can potentially stop your application from going into the App Store and simply crashing and burning.

So you’ve successfully completed the somewhat timely process of beta testing your application and you’ve also smashed out some bugs and fixed areas of your application that are prone to crash. You’re officially ready to release version 1.0 of your application on the App Store, be it iOS or Mac.

First things first, you need to actually ‘tell’ Apple that you’re going to be submitting an application to them so that when you submit your application using Xcode or Application Loader, iTunes Connect knows what you’re actually sending.

Screen Shot 2011-09-18 at 22.51.02

To start this process, you need to head over to and select Manage Your Applications and then select the Add New App button that’s in the top left corner. Once you’ve done this you need to select what type your app is — either iOS or Mac OS X.

From there, you need to enter your app’s name, your app’s SKU number and your Bundle ID. I have found that the SKU number is somewhat pointless and I have entered numbers that are completely random. The purpose of an SKU number is essentially a number that will identify your application on the App Store and the number you enter will be unique to your application.

Once all of the primary details are correct, then you get to add information that potential customers will see when they browse the App Store. You do get to change the description, screenshots and any URLs once your application is live on the App Store but it’s generally a good idea to get it right prior to submitting your app because your application will be rejected if any of these are incorrect, including broken URLs, false information in your description and/or any misguiding screenshots.

Screen Shot 2011-09-18 at 22.52.29

Once you have entered all of your information and details of your application, you need to click Ready for Binary Upload, and you’ll receive an email saying that your application is ready for upload. You need to hop over to Xcode and head to the Organiser, select the Archives toolbar item and select the most recent archive of your application and press Submit.

When you press Submit, you’ll need to sign in and Xcode will validate your application and check that your binary gets the green light from iTunes Connect. Your application will be sent off for review by the App Store review team. Make sure that your app’s version number is correct because, as you can guess, your app will get rejected if the app number doesn’t initially start at 1.0 and if it doesn’t increment with every update.

Screen Shot 2011-09-18 at 22.49.58

Screen Shot 2011-09-18 at 22.52.07

To recap: you’ve conducted a beta testing program with a team of dedicated, useful and insightful testers for at least a month, you’ve gotten feedback and acted on the feedback, you’ve prepared your application in iTunes Connect and you’ve sent your application for review. Wow, this is really getting serious and within a week you could potentially have a world-wide chart topping application on the App Store.

This is where it gets really interesting. The only hurdle between you and App Store domination is Apple’s app review team and Apple’s app review process.

Once you’ve submitted your application to the App Store, you’ll find that for the majority of the time prior to your App Store release, your application state is ‘Waiting for Review’.

A small side-note, according to some statistics released not that long ago by Apple, you should expect your application to be reviewed within a week. 95% of new apps and 98% of application updates are fully reviewed within 7 days.

Screen Shot 2011-09-18 at 22.54.44

After a couple of days have elapsed, you’ll find that the state of your application changes to In Review — this is where all of your hard work can truly pay off; on the other hand, this is where all of your hard work can quickly become a waste of time. In the past, I have had an application rejected within 1 hour and I have had an application in the ‘In Review’ state for about 4 days. In fact, I have an application right now that’s been in review for around 3 days.

If all doesn’t go to plan and your application sadly gets rejected, then the kind folks at Apple provide an in-depth description as to why your application was rejected — as well as any crash logs and anything you should do to get your application accepted next time. Furthermore, if you’re completely stumped as to how to correct a specific problem, you can take advantage of your two free iTunes Technical Support requests. Every developer gets two free support requests and Apple gives you a qualified expect that will help you out with your problem; I personally have only used one technical request within two years because I find the Apple Developer Forums, Stack Overflow and MacRumors Forums to be useful during bug-crunching.

However, if your application gets approved, you’ll find that the state of your application goes from ‘In Review’ to ‘Processing for App Store’ and then at last, ‘Ready for Sale’! That is, of course, providing you have everything in order — you will have to have all of your contracts signed and sorted if you want to get an application on the App Store (even if your app is free).

Screen Shot 2012-04-22 at 11.01.52

Having an app on the App Store does make you feel great! You’ve gone from putting your passion into an app to being approved by a notoriously frustrating app review team. However, just because you’ve got an application on the App Store doesn’t mean you can stop worrying about the app! If you want to get good ratings and feedback then you need to listen to your customers. These people have given you their money — the least you can do for them is listen to them.

I try to push out a ground-breaking new feature in my apps every month or two and I ensure that every two weeks I release a minor update, nothing I create is ever truly finished and I always ensure that I keep my projects active. Go ahead and create something amazing and go the extra mile to make each and every one of your customers say wow.

Finally, I would not be where I am without a few resources I’ve found online. Make good use of these:

Fuel Your Coding

Leave a Comment