The skinny: my app works excellently in iOS 5.x. However, certain features do not work so well in 4.x. All is resolved with an update to 5.x.
Option 1 – Good programmer: find out what was done in my app with these particular features and why they don’t work in 4.x.
Option 2 – Lazy programmer: detect the version of iOS the user is running (I’m already aware that this is not advised) and suggest they upgrade if it’s older. Even further, lead them to Settings/Software Update through the use of iPhone URL (eg: iossettings://).
Your advise is greatly appreciated.
This question may not suit StackOverflow very well, but I’ll provide my thoughts. Support the platform or don’t support the platform. If you don’t support iOS 4, then don’t support it and compile the app to require iOS5. If you do support it, then fix the bugs. Don’t support it but nag the user. That’s just lazy as you say.
Many apps have already moved to iOS5-only. Unless your market is unusual and is particularly likely to have iOS4, then I would drop iOS4 support and move on. The time you waste supporting it won’t translate into enough sales to cover it for most apps IMO. And the bad reviews you get on iOS4 will outweigh the few extra sales you might get there. Pick an audience and delight them.