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?
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.
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?
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.
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.
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.