I would like to write an app which can be run on iOS 3.1.3 up to iOS 4.1. I know how to set up the deployment target and the base SDK.
After reading the Apple docs it heavily relies on checking if the class is available and/or if an instance responds to a specific selector.
Now my questions:
I already watched session 130 of WWDC10 "Future-proofing your app" so the things said there are known.
Thank you.
Based on personal experience, may not have all the right answers, but I'll try:
I don't think this is a problem because of the reasoning behind the private API ban. Apple prohibits private APIs (at least in part) because they do not want things to change behind the scenes in future versions of iOS, since it is now public API, it is guaranteed to be supported.
No clue. I've seen them used for code that can run on OSX and iOS.But I don't think I would because iOS version is detected at run time and compiling can really only account for OS X vs iOS, not 3.x vs 4.x.
Go with armv6 so you can support older iOS devices. It will not be a problem with armv7. I believe that you are right that armv7 can run apps built for armv6, but I am not sure.
It depends on your target deployment platform. You do get warnings if you call deprecated code.
Probably. I've had issues with iAd, but I don't remember specifics. Just check for existing classes and remember to do your weak-linking and class-instantiation where necessary.