Tell me more ×
Ask Different is a question and answer site for power users of Apple hardware and software. It's 100% free, no registration required.

I'm using Xcode 4.2 & it can simulate iOS 4.3 & 5. My app works fine on those versions. For the sake of backward compatibility I want to test if my app works on iOS 3.2. But the latest Xcode won't let me simulate it. Sad that I've iOS 5 running on my iPhone & there is no way to downgrade it either.

Using old Xcode which could simulate iOS 3.2 is not an option, as my project won't complie on it due to missing classes.

How can I make sure my app is tested against iOS versions 3.2 through 5.0?

share|improve this question
Isn't "my project won't compile on it due to missing classes" your answer? If your project won't compile because some features it depends on don't exist in an older version of XCode, then it is a safe bet that they don't exist if someone tried to run your app on an older version of iOS. – Lee Dec 13 '11 at 10:16
It is possible to compile using new Objective C classes only in the latest SDK, but still be compatible with older OS versions, by just not using those classes if they are not available on the device. Many apps do this. – hotpaw2 Dec 14 '11 at 0:36
Welcome to Ask Different! Questions about programming, development, and listing your apps on the App Store are off topic for Ask Different. Please take a look at the FAQs for more info. Thanks. – Nathan Greenstein Dec 14 '11 at 0:38

closed as off topic by Nathan Greenstein Dec 14 '11 at 0:38

Questions on Ask Different are expected to relate to Apple hardware or software within the scope defined in the FAQ. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about closed questions here.

1 Answer

The only way to thoroughly test for compatibility with older iOS versions is to test on an actual (keep, buy, borrow, send an Ad Hoc build) device running that iOS version. The Simulator (even the one that came with that older SDK version) is not an accurate indicator of compatibility, and new or upgraded iOS devices cannot be downgraded. Keeping a stash of older non-updated devices is just another cost of iPad/iPhone/iOS development if you want to support compatibility with old Deployment targets. Consider only supporting the current iOS release you are running if you don't want to do this. Otherwise your customers end up being your crash tet dummies.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.