Alongside the new iOS 11, watchOS 4, and tvOS 11 updates, Apple has released Xcode 9, the latest version of the Xcode Mac app that lets developers create apps for Mac, iPhone, iPad, Apple Watch, and Apple TV. Xcode 9 introduces Swift 4 and all of the SDKs necessary to develop apps for iOS 11, watchOS 4, tvOS 11, and macOS High Sierra, including the new Core ML framework for machine learning and ARKit for augmented reality. Xcode 9 includes a new structure-based editor with native Markdown support and faster navigation through code, plus it includes built-in refactoring that works across Swift, Objective-C, C, C, Interface Builder, and more. Faster search and wireless debugging for iOS and tvOS devices have been added, as have new debuggers for Metal. IOS playground templates now work in both Xcode and Swift Playgrounds, and Xcode server is built in, so there's no need to install macOS server. There's a new source control navigator with integrated support for GitHub for better collaborative code management, and Simulator has been updated to behave more like a real device. It's also able to simulate multiple devices at once.
Xcode 8.1 includes Swift 3, and SDKs for iOS 10.1, watchOS 3.1, tvOS 10, and macOS Sierra 10.12.1. Xcode 8.1 adds support for Touch Bar on the new MacBook Pro: • Touch Bar displays context-specific buttons when in the Xcode editor, commit sheet, navigator, and Interface Builder.
A full and extensive list of is available from Apple's developer site, and an overview is also. Many developers will already be familiar with the changes introduced as Xcode 9 has been in testing alongside iOS 11 and the other software updates since June. Xcode can be downloaded from the Mac App Store for free.
Xcode 6 and Xcode 7 are not supported by Apple on macOS Sierra, and should not be used for production work. But what if you have a good reason for running one or the other? Maybe you want to compare a behavior in the latest Xcode 8 with an earlier version of the app. Instead of keeping a virtual machine around, or a second partition with an older OS release, it is liberating to be able to run and test against older versions of Xcode.
So far, it appears that Xcode 7 “mostly works” in spite of being unsupported by Apple. I’ve run into some launch-time crashes, but reopening the app tends to succeed. Xcode 6 will flat out fail to launch, because one of its internal plugins depends on a private framework (Ubiquity.framework) that is no longer present on macOS Sierra.
If you were willing to hack a copy of Xcode 6, however, you could get it running. You definitely shouldn’t do this, but if you’re curious how it could be done, here’s how:. Always have a backup copy of any data that is important to you. Locate a copy of /System/Library/PrivateFrameworks/Ubiquity.framework from the previous OS X release. Copy the framework to within Xcode 6’s own Contents/Frameworks bundle subfolder: ditto /my/old/System/Library/PrivateFrameworks/Ubiquity.framework./Xcode.app/Contents/Frameworks/Ubiquity.framework. Navigate to the problematic Xcode plugin and modify its library lookup table so that it points to the app-bundled copy of Ubiquity.framework, instead of the non-existent system-installed copy. Cd Xcode.app/Contents/PlugIns/iCloudSupport.ideplugin/Contents/MacOS installnametool -change /System/Library/PrivateFrameworks/Ubiquity.framework/Versions/A/Ubiquity @rpath/Ubiquity.framework/Versions/A/Ubiquity./iCloudSupport.
Now that you've modified Xcode, its code signature is invalid. You can repair it by signing it with your own credentials or with an ad hoc credential: codesign -deep -f -s -./Xcode.app. Did I mention you really shouldn't do this? Apple has good reason to warn people off running older versions of Xcode, but if you absolutely need to get something running again, it's often possible. Post navigation.