I’ve been doing a little research into how best to manage the whole iOS Development / Ad Hoc Distribution (UAT / beta) / App Store (prod) lifecycle and whilst I’m not quite at the stage where I’m ready to write-up a workflow document I’ve come across some useful resources that I thought might be worth sharing. Since all compiled iOS apps must be signed there are some extra considerations when compared to rolling out regular compiled or interpreted code, sure you can brute-force your way through the process (I did this for my Veggie Phrases app) but that can only ever work well when you’re a one-man-band developing apps for your own purposes.
If you’re developing apps for clients or have a distributed development / testing team you’re almost certainly going to think a little more carefully about how you manage keys, certificates, provisioning profiles, App IDs, bundle seeds, bundle identifiers and so on. There’s not much structure to this post since it’s just a ‘what I’ve found so far’ effort but hopefully the resources might prove useful…
I’ll start with what is probbaly the best piece of Apple documentation I could find: the iTunes Connect Developer Guide. After banging my head against the desk trying to get Veggie Phrases onto the App Store it’s the document that made all the pieces fall into place, athough it’s a pretty high-level overview.
Antonio Holguin has written an excellent post: Apple iOS Development Process Summary which explains the whole end-to-end process in depth. It’s not for the faint-hearted but it answered a lot of the questions I had where I’d found the rest Apple’s documentation lacking (please correct me if I’m wrong, perhaps I’ve just not found the best bits?).
If you need to write applications that share Keychain Access there’s some useful information on UseYourLoaf.com, even if you don’t need to do this it will help understand how to use Bundle Seed IDs correctly.
Another challenge with iPhone app development is how to distribute applications to remote testers and how to conduct a beta / trial without going via the App Store, thankfully TestFlight solves this by providing a simple way to gather device UDIDs and distribute the Ad Hoc executable over-the-air. The service is clearly evolving and it currently does a very good job of what it does but seems to be suited to small-scale development and lacks some of the features that a corporate development team might need (audit trail, alerting, security hierarchy).
I’ve also come across the iOSDev UK Conference which may be interesting, I’m not yet sure whether I’ll attend since I’m only a casual developer but some of you may find it worthwhile.
Well, I hope that helps people, if anyone has suggestions for additional resources covering process management, workflows, etc. I’d be glad to hear it.