Who would have thought resolving a pending tax issue could be so exciting?  But that was just what it felt like when my iOS Paid Applications contract with went from Pending Tax to Processing and then quickly to Effective.   Getting started with a development certificate and putting my app onto my own iPod was straight forward.  Getting it a spot in the app store was a little more involved.  Here is an outline of events and some hindsight.


As it sometimes is, the internet was long on information and a little short on knowledge.  Searching the web for "how to post your app" produced many links but I struggled to come across a definitive guide.  The distribution guide provided in the Provisioning Portal is very good.  I used it and worked through each step incrementally while also using a series of good sites that were near the top of the search results.  Along the way, I figured out a few things that would have saved me time.


Oddly, a non-technical step caused by biggest - and self-inflicted - schedule delay.  Get your iOS Paid Application contract started as soon as you have developed your app to production quality.  The steps in the paragraphs below go by quickly, but the contract needs time to process.  In my case, my app was reviewed and approved faster than I expected.  It languished for several days in a Pending Contract state while I figured out how to complete my contract with the store.  The contact and banking information is straight forward.  What tripped me up for a few days was that all app vendors have to fill out a US tax declaration.  In my case, it meant confirming online that I was not subject to US tax for a variety of reasons, including that no US assets were used to create my app.  Although I had mailed off the specific tax forms for my country, I was stuck in Pending Tax until I completed the US declaration.


Once your contract is processing, turn your attention to getting setup with an Distribution Certificate, an App ID and a Distribution Provisioning Profile.  I read the instructions on the portal under Distribution, but until I developed a mental picture in my head of the flow of events, I felt mildly confused.  While on the IOS Provisioning Portal keep this order of events in mind.


1 "Request a Certificate from Certificate Authority ..." from the Keychain Access utility and save it to your desktop.  Then, in the Provisioning Portal, pick Certificates, followed by the Distribution tab.  Request a Distribution Certificate, download that certificate and drag it into the Certificates area of your Keychain Manager.


2 Back in the Provisioning Portal, pick App IDs and setup a new App ID.  Use the everyday, conversational name of your App for the Description.  Something like "SnapEng F Effort Profiler".  For the Bundle Identifier, I followed the convention suggested on the website, swapping the .ca domain for .com to create com.snapeng.snapengf.


3 Back in the Provisioning Portal, pick Provisioning, followed by the Distribution tab.  Request a new Provisioning Profile.  Declare the Distribution Method as App Store and use a Profile Name with the prefix "Dist - " because long provisioning names sometimes display with the back end cut off.  "Dist - SnapEng F Effort Profiler" is an example.  Pick the App ID you just created and create the Provisioning Profile.  Download the new Provisioning Profile onto your desktop.  Open your app project Xcode.  Drag the file into the Organizer window of Xcode.


4 For putting it all together and building an upload-able app, the Distribution guide explains it best.  Read it by going to the Provisioning Portal and picking Distribution.  In a nutshell, you need to create a new build configuration called Distribution that is a clone of the Release build configuration.  Once you have properly mated your downloaded Distribution Provisioning Profile with your project in a couple of places and set the Version, you are ready to Build & Archive.  This step lets you Validate your app before you take the last step and Upload it.


And that is the main flow of events for getting your app into the app store, and how to avoid taxation from being the bottle neck.