How do I set a previous base SDK in Xcode 10?

Sean Dawson picture Sean Dawson · Feb 25, 2019 · Viewed 7.9k times · Source

In earlier versions of Xcode I could set the base SDK to the current iOS version and the deployment target to an earlier version as shown in the below slide from the iOS 7 TechTalk, session Architecting Modern Apps, Part 2:

iOS 7 TechTalk, session Architecting Modern Apps, Part 2

This Stack Overflow question elaborates nicely on the Base SDK vs Deployment target.

What's the meaning of Base SDK, iOS deployment target, Target, and Project in xcode

However, now when I look at the base SDK config field in Xcode I just see "iOS" (which is an alias of "iphoneos").

According to https://developer.apple.com/ios/submit/

Starting March 2019, all iOS apps submitted to the App Store will need to be built with the iOS 12.1 SDK or later, and support the all-screen design of iPhone XS Max or the 12.9-inch iPad Pro (3rd generation).

This worries me because it seems that I can no longer target older versions of iOS.

I've done a lot of research by I cannot seem to work out definitively whether there still a way to use the 12.1 SDK but target older versions of iOS. Is there a way to do this?

Answer

Paulw11 picture Paulw11 · Feb 25, 2019

The base SDK is just "iOS". The exact version will depend on your version of Xcode (12.1 if you are using Xcode 10.1). The base SDK does not determine which versions of iOS are supported by your app.

You set the minimum version your app is compatible with by specifying the "iOS deployment target", either for your project as a whole:

enter image description here

or in the settings for a specific target in your project

enter image description here

The oldest version of iOS that you can target with Xcode 10 is iOS 8 (which is pretty old).