25
votes


I seem to be not understanding the effects of a specific deployment target in XCode (4.5) correctly. Specifically, I got an app in the app store that was previously set for deployment target 5.0, meaning on the app store page it says "requires iOS 5.0". So when I now set the deployment target to 6.0 in my next update, does that mean it'll require iOS 6 and otherwise won't start? I'm not using new iOS 6 features in my update.

I guess that means I should stay at 5.0 for my deployment target, but then what is the point of changing your deployment target (provided the one you had used previously is not totally obsolete)?

2
"when I now set the deployment target to 6.0 in my next update, does that mean it'll require iOS 6 and otherwise won't start?" - and it won't even install.user529758
This is a duplicate of many other questions. Do a search on "deployment target base sdk" for plenty of existing answers.rmaddy
@rmaddy I'm sorry, I wasn't aware it was related to the base sdk I'm using; looking through the top 10 questions related to just "deployment target" didn't get me anywhere. As a dev I should know this, and I do now, thanks.pille

2 Answers

64
votes

There are two primary settings used for your targeting your builds:

Base SDK & Deployment Target.

The Base SDK = What are the latest features I want available in this app?

The Deployment Target = What is the earliest OS I want to be able to run this app?

So, if you have both of these set to iOS 6, the user must have iOS 6 to install or run the app.

If you have a Deployment Target of iOS 5.0 and a Base SDK of 6.0 that means it'll install and run in iOS 5.0, but you need to be careful to branch your code and not use any iOS 6.0 features if the user is running on an iOS 5.0 device.

10
votes

So when I now set the deployment target to 6.0 in my next update, does that mean it'll require iOS 6 and otherwise won't start?

Yes, if your deployment target is iOS 6, then users will need iOS 6 or above to run it. Simple as.

Your deployment target is your baseline for supported devices, it's the minimum version you support. This doesn't mean you can't use iOS 6 specific features, but it does mean you need to take into account iOS 5 users at runtime (See iOS SDK Compatibility Guide)

What developers typically do is update their base SDK. This means they're able to take advantage of the latest abilities of the SDK, to make a better user experience for users on that iOS version. Having a base SDK of iOS 6 does not mean the app won't work for iOS 5 users.