0
votes

iOS 8 launches my first experience with two OS's available in the market to support as my first app came out for iOS 7 only, in December of 2013.

As I'm quite new to this experience, I wanted to ask for the best way forward with this. I'm sure that a fair amount of my users are on iOS 7 but there will be a lot on iOS 8. The app works really well on both iOS 7 and 8 thus far, but I'm now updating it for the iPhone 6 resolution and features like widgets and Touch ID.

Can I support both iOS 7 and iOS 8 from Xcode 6? If so, how would I do this?

For example, when I select iOS 8 as the Deployment Target, I'm getting warnings from depreciated methods with iOS 7 which is fine. However, what do I do about that?

In the code where the warnings are appearing, if I change it to the iOS 8 methods, how would that work on iOS 7 devices with code that's not used for iOS 7? If I switch back to iOS 7, I'm getting warnings "Automatic Preferred Max Layout Width is not available on iOS versions prior to 8.0", so something with AutoLayout has messed up on the storyboard.

Also, with Apple's iOS 8 requirements for apps by Feb 2015 (https://developer.apple.com/news/?id=10202014a), does that mean my app has to be iOS 8 only support?

My questions are basically asking for what's the best way forward. Should I just make everything iOS 8 and make sure the users are required to update their OS before upgrading?

Any advice on this would be really helpful and appreciated.

Thanks,

1

1 Answers

0
votes

First of all if you set the Deployment Target to 8, you raise your minimum SDK level to 8.0, so no one with iOS7 will be able to run the new version of your app. So back to 7.0 with that.

What you need to do is to use in-code logic to detect which iOS the user is running and provide the best user experience.

There are a number of ways to achieve this, like testing against respondsToSelector, checking the iOS version ([[UIDevice currentDevice] systemVersion]) or using macros