Officially Apple let developers deploy apps that’s compatible with iOS 3.0 to iOS 4.2. However there are some APIs and some hardware features that’s not present in some devices or in some iOS versions.
However if you only have one testing device, and you want to try to install a clean iOS 3.0 to that, for testing purposes, what is the official way to do it? I tried looking all over Apple developer website and it does not give me anything.
I asked a similar question before: A TimeMachine taking my iDevice back to 3.1.2?
After that I did a thorough research on this topic. It finally turned out, that actually there is no official way for a developer to downgrade her or his own device back to an earlier iOS. Apple just doesn’t allow that to happen.
However, in your code, there are many things you can do to make sure your app is supported in an old version iOS. Check this great post: http://cocoawithlove.com/2010/07/tips-tricks-for-conditional-ios3-ios32.html