A few months ago I got an shocking email from Apple, telling that they will reject every app that is not built against iOS 4.x SDK. Now I wonder if:
1) is this a bad joke?
2) if not: does that mean that my app will only run on the very lates devices like iPhone4, iPod touch 4, or any device that has iOS 4.x installed?
I downloaded the latest iOS SDK and I can only build against 3.2 or 4.1, where I believe 3.2 is only for iPad. Now I can either throw away my 6 iPod touches with older OS installed or I’m lucky and there’s still a way to code for them without upgrading them all to 4.1.
What do you think? What’s the truth?
No, but it’s a good thing.
First, it encourages developers to keep using the most up-to-date SDK.
Second, it encourages users to update to the latest firmware. (Fewer bugs, more stability, less security holes).
Third, it presents you a fixed target you have to worry about when it comes to submitting your app. If Apple tested against every version of iOS, it would take forever for apps to be approved, and you’d end up getting all sorts of little bugs on specific versions of firmware on specific devices. It would be madness.
You can set the Deployment Target in the build settings for whatever you want, but I’d recommend no lower than 3.1.x for any app. Because of (1), most users are using 4.x, with a small percentage using 3.x, and virtually no one running 2.x or 1.x.
If you have an older iPod Touch (as I do — 1st gen) keep it around (with 3.1.3) for testing your apps. Don’t throw it out.