How To Support Old iOS SDK’s in Xcode 5

OH NOES, APPLE REMOVED SUPPORT FOR IOS 6 IN XCODE 5 *FIST SHAKE* !!!!

This is a sentiment I’ve seen a on twitter an awful lot in the last few days, and it’s not exactly accurate. The truth is, Apple does tend to encourage developers to link their applications against the latest SDKs; however, it is possible, with a tiny amount of hoop jumping, to use the new Xcode while linking against an SDK older than iOS 7.0.

The solution is simply to copy the old SDKs from the old Xcode to Xcode 5. Restart Xcode 5, and be sure you’ve changed your base SDK from Latest iOS to the specific SDK you’d like to build against, and you’re all set!

The iOS SDKs live here:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs

The Mac SDKs here:

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs

If you’ve already blasted your old Xcode in exchange for the shiny new Xcode 5, there’s no need to fret. As of now, Xcode 4.6.3 is still the version in the Mac App Store, and provides the iOS 6.1 SDK. Just go download it, and grab the SDKs out of it before reinstalling Xcode 5.

Update: @rekle points out that it’s possible to get older versions of Xcode from the Downloads area of the Apple Dev Center. Even once Xcode 5 hits the App Store, it should still be possible to get an old SDK version.

Jerry Jones

About Jerry Jones

Co-Founder of Spaceman Labs, Inc. Formerly of Mellmo, Inc. iOS Developer since 2007. You can find me on LinkedIn, Twitter, and doing backflips on jet skis.
This entry was posted in Software and tagged , , , . Bookmark the permalink.
  • Bill in OKC

    Will this allow me to continue my work on Xcode 5 for an enterprise application I have been developing for months that currently runs on iOS 6?

    I upgraded to Xcode 5 and also upgraded my iPad to iOS 7. But when I tried to run the program on my test phone, Xcode returned an uncountable number of errors. I’ve scoured the internet to see if anyone else has had this problem, but had no luck. I was able to delete Xcode 5 and reinstall 4.6.3, and I’m all good now (at least with the iPhone. The iPad is a lost cause with its un-uninstallable iOS 7). But the time will come when I will have no choice but to migrate to iOS 7 and Xcode 5. I just need to find out what’s causing the errors.

    Any help you can give me will be greatly appreciated. I’m still pretty much an iOS novice.

    • Rogier van het Schip

      We have the same problem here, did you find a solution?

      The errors only occur when we switch the Base SDK to iOS 6.1. Upgrading to iOS 7 would delay our launch, frankly.

      • Bill in OKC

        Yes. Jerry Jones’s suggestion above worked for me. It allows me to continue development of my iOS 6 app on Xcode 5, and also to test my code on iOS 7 hardware. My problem has been that I am not very Mac-savvy (I am a Windows guy), so figuring out how to find the 6 SDK and move it to the right place for Xcode 5 was the challenge.

        After setting the Base SDK in the Build Settings to 6.1, the whole error problem went away, but a new set of errors popped up. Fortunately, they were easy to fix. I had a couple of XIBs that were, unbeknownst to me, set for Auto Layout. I disabled that, and no more problems.

        What gets me is that Apple should have provided some kind of warning that this would happen, and an explanation for what to do about it. Better yet, they should have just assumed the people would be continuing development for iOS 6 and included that SDK in Xcode 5.

        Upgrading to iOS 7 would delay our launch, frankly.

        I was facing the same dilemma. I’d been working on this app for over a year, I’m finally just about ready to release it to all our field crews, and this happens. I really didn’t want to have to start over.

        I hope this helps.

        • Rogier van het Schip

          It helps, and I agree about Apple not providing a lot of transparency, although I have to admit they provided a beta well in advance.

          Our errors have not gone away, we decided to switch to the iOS 7 SDK. This gave layout problems, as the edges of the view in iOS 7 suddenly extended underneath the top bar, but this turned out easier to correct than hunting down the errors.

          For future reference: In the storyboard, select the view controller, Attributes Inspector, View Controller section, switch off ‘Extend edges under Top Bars’. Also see http://stackoverflow.com/questions/18789225/ios-7-uinavigationbar-uiview-layout-issue

    • zulkis

      Can you post an errors?

      • Rogier van het Schip

        26 of these errors: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccelerometer.h:53:24: ‘UIAccelerometer’ is unavailable: not available on OS X

        Followed by this error:
        Apple LLVM 5.0 error – Too many errors emitted, stopping now

        This only occurs when we switch to iOS 6.1. I’ve tried setting all storyboards to (in the storyboard File Inspector, Interface Builder Document section) to ‘View as’ ‘iOS 6.1 and earlier’, but to no avail. I’m getting the feeling the storyboards are still set to iOS 7, but do not know how to check this.

        • Rogier van het Schip

          As noted elsewhere in this thread: We decided to move to iOS 7, spending time moving forward seemed more effective than spending time moving backward to iOS 6.1. :-)

  • MikeH

    As of September 18th, Xcode 5 is the new version on the store. The downloads area of the Dev Center is now the only way to get it from Apple.

  • remoe

    Bill,

    Do you have read:

    https://developer.apple.com/library/ios/documentation/DeveloperTools/Conceptual/WhatsNewXcode/Articles/xcode_5_0.html

    It could be you have issues with that one:

    “The default C++ standard library for projects deploying to iOS 7 is now the LLVM libc++ library”

  • Brian Ledsworth

    Awesome, thanks!

    b

  • timrc

    hmm you can download it from here: https://s3.amazonaws.com/rybak/ios-sdk61.tar.gz