How to use "iOS 6 Legacy Look" in Xcode 5

Xcode LogoI’ve previously written about how to retain iOS 6 Legacy Look when deploying your apps to iOS 7. This can be achieved by simply using Xcode 4.6.3 to compile and submit your apps to the App Store.

The good news is that there is a way to do this with Xcode 5 too, and therefore we can take advantage of all the improvements the new version has to offer. All we need to do is change the Base SDK in Xcode 5.

Let me show you how it’s done.

The “iOS 6 Legacy Look” as I’d like to call it is actually called “iOS 6 Compatibility Mode” and it’s achieved by compiling against an older Base SDK. Each version of Xcode only ships with the most recent one, but if more than one is present in your Xcode installation you can easily switch between them on a per-app basis. This is exactly what we want!

First we need to get hold of the old iOS 6 Base SDK. It comes with Xcode 4.6.3 which is still available from Apple. You can also hunt for it on an old Time Machine backup, or if you’re like me you may even have in installed side by side with Xcode 5 (I’m not taking any chances).

Getting the iOS 6 Base SDK

  • open Finder and find your Xcode 4.6.3 package
  • right-click and select “show package contents”
  • navigate to Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
  • you’ll find a folder called iPhoneOS6.1.sdk
  • copy it

Now that we’ve got it, let’s paste it into the very same directory in Xcode 5:

  • open Finder again and find your Xcode 5 package
  • right-click and select “show package contents”
  • navigate to Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
  • you’ll find a folder here called iPhoneOS7.0.sdk (that’s the “latest” at the time of writing)
  • paste the iPhoneOS6.1.sdk folder here

You should now have two folders inside the SDKs folder, one for iOS 6.1 and one for iOS 7.0. Awesome!

Restart Xcode for those changes to be acknowledged.

Selecting the old Base SDK

Open your project in Xcode 5 and head over to the Project Properties. That’s the big blue strip at the top of the Navigator pane (the one on the left). Select Build Settings from the middle pane at the top and find an option called Base SDK (it’s under Architectures).

By default this is a greyed out drop-down menu, which when clicked only presents the latest SDK. Now that we’ve added another SDK, you can select which one you’d like to use:

Screen Shot 2013-11-02 at 09.16.21

Select the iOS 6.1 SDK and run your app in the iOS 7 Simulator. You’ll be pleased to see all the old legacy styles we’ve come to love from the past, without iOS 7 ruining your carefully crafted app.

Enjoy the benefits of Xcode 5 and the look of iOS 6 😉

Notes and Possible Pitfalls

  • I’m not sure what will happen when the next Xcode update comes along – it may wipe out your iOS 6.1 SDK. Perhaps it’s best to keep it in a safe place, away from the Xcode 5 package
  • Make sure your Deployment Target is not set to iOS 7 – otherwise your app won’t run on older iOS versions (which would defeat the object of this exercise)

Further Reading:





One thought on “How to use "iOS 6 Legacy Look" in Xcode 5

Leave a Reply