What’s New in Xcode
Learn about the key features available in Xcode, the integrated development environment for building apps for Mac, iPhone, iPad, Apple Watch, and Apple TV. For detailed information on updates in the latest released versions, including each beta release, see the Xcode Release Notes.
Xcode 12 includes Swift 5.3 and SDKs for iOS 14, iPadOS 14, tvOS 14, watchOS 7, and macOS Big Sur.
- A single macOS Universal app includes native binaries for Intel-based Macs and Apple Silicon Macs
- “Any Mac” destination in the toolbar builds a Universal app, even on Intel-based Macs
- Standard Architectures build setting defaults to Universal, and Xcode offers to upgrade your project if needed
- Run and debug the Intel binary within a Universal app by selecting “My Mac (Rosetta)” on a Developer Transition Kit (DTK) from the Universal App Quick Start Program
NOTE: Xcode 12.2 adds support for macOS Big Sur and Universal apps.
Refined user interface for macOS Big Sur
- Document tabs open any type of document, including logs, asset catalogs, and UI files, in a lightweight editor tab
- Toolbar, icons, and sidebar designs match the beautiful new aesthetic of macOS Big Sur
- Navigator fonts track the size of the system setting or can be manually set to a custom size
- Organizer is completely redesigned and reports new app metrics, such as hitches in animation and scrolling
Swift and SwiftUI
- App lifecycle in SwiftUI enables entire apps to be written completely in SwiftUI for iOS, iPadOS, and macOS
- WidgetKit built on SwiftUI makes it easy to share code for widgets that run on iOS, iPadOS, and macOS
- SwiftUI performance is improved throughout, and new Lazy views efficiently handle enormous data sets
- Multiplatform templates make it easy to share SwiftUI code across all Apple platforms, customized for each
- SwiftUI Views can be turned into reusable components that appear in the Xcode library and in code completions
- Swift Package Manager supports resources and localizations, making it great for sharing SwiftUI components
- Improved Swift language diagnostics make it much easier to understand coding mistakes, especially in SwiftUI code
- Mac idiom displays your app’s user interface in 100% native Mac size and scale for total customization
- Additional frameworks and controls are available, including HomeKit and AVCapture
- Keyboard APIs and OS integration make it easier to completely control your app with the keyboard
- Apps built with Mac Catalyst automatically inherit the new look and feel of macOS Big Sur
- App clips target creates a small, focused experience from your app that installs quickly
- StoreKit testing framework and transaction manager make it easy to test and debug in-app purchases
Xcode 11 includes Swift 5.1 and SDKs for iOS 13, tvOS 13, watchOS 6, and macOS Catalina 10.15
This release adds many features to bring your apps to even more Apple platforms. SwiftUI is an innovative new user interface framework with a declarative Swift syntax that is easy to read, and natural to write. Amazing new preview tools let you manually type SwiftUI code, or modify the UI with rich design tools, with code and design always in sync. Get a head start on your Mac app by selecting the “Mac” checkbox in the project settings of your existing iPad app. And with support for Swift packages in Xcode 11, you can share code among all your apps, or make use of packages created by the community.
Xcode 11 includes SwiftUI, a new Swift framework and accompanying design tools that empower a whole new way to build user interfaces. Design tools in Xcode make it as easy as drag-and-drop to construct or edit your interface, all while instantly editing the exact same Swift code file you can also edit by hand. Xcode is constantly running your real app interface live to see how it behaves directly in the design canvas, or you can instantly preview your app on an attached device.
- Design tools read and write the same code you edit by hand for a single source of truth
- Declarative syntax defines your user interface as easy-to-read Swift code
- Animations are built using simple commands that describe the action you want to see
- Library of controls and modifiers make it easy to design and build complex interfaces
- Share common UI code across all Apple platforms, and add custom experiences for each OS
- Previews show an exact rendering across various device types and accessibility settings
- Interact with your interface live in the design canvas, or on an attached device
- Hot-swap your edits into a live view of your app to instantly see and interact with changes
SwiftUI requires iOS 13, watchOS 6, tvOS 13, or macOS Catalina. To use the SwiftUI design canvas Xcode 11 must running on macOS Catalina.
Bring your iPad app to the Mac
It is easy to bring your existing iPad app to millions of Mac users. When you click a single checkbox Xcode can transform your iPad app into a true native Mac app that performs great.
- Clicking a checkbox in your iPad project adds a native Mac app, built with the macOS SDK
- Use a single code base for iPhone, iPad, and Mac versions of your app, and customize parts of your app for Mac
- Add new SwiftUI code to the existing shared UIKit code
- Submit to the Mac App Store directly from Xcode, or notarize for outside distribution
Swift and Swift Packages
- Swift packages are supported throughout Xcode workflows — build, debug, SCM, and more
- Easily use Swift packages published on GitHub, Bitbucket, GitLab, or your own hosts
- Xcode automatically retrieves and manages packages based on dependency analysis
- Create your own packages to share code among your own apps, or to publish for the community
iOS dark mode
- Switch between light and dark mode instantly while developing and debugging
- Asset catalog makes it easy to control images and colors for dark and light mode
- Editor minimap gives a bird’s eye view of your code so you can quickly jump to any section
- Each editor view or tab has its own preview, assistant, or other complementary views
- Split any editor pane to layout your workspace exactly as you want
Other improvements in Xcode 11
- Build stand-alone watchOS apps with a much faster debugging experience
- Simulator launches much faster and uses the GPU to accelerate Metal code
- Test plans give you greater control of your test harness with sharable results bundles
- Automatically generate localized screenshots using UI tests as part of your test plan
- Source control adds support for stash and cherry pick operations
- Debug your app under simulated device conditions such as a slow network or thermal warnings
- Metrics tab in the Organizer shows how efficiently your app runs on customer devices
Xcode 10.2 includes Swift 5 and SDKs for iOS 12.2, tvOS 12.2, watchOS 5.2, and macOS Mojave 10.14.4.
- Swift 5 runtime is included as part of the OS in the latest Apple platform releases
- App Store thins the Swift runtime from your apps for faster downloads to devices running latest OS
- SIMD vector types are built into the standard library
- String literals have an enhanced syntax that makes them easier to read and write
- New Result enum type makes it easier to handle errors across asynchronous operations
Other enhancements in Xcode
- Debugger console has a new frame variable command alias “v” that is faster than “p” or “po”
- Playgrounds include various stability improvements and additional memory safety checks
Xcode 10.2.1 fixes a build time issue in large Swift projects, and includes additional bug fixes.
Xcode 10.1 includes Swift 4.2.1 and SDKs for iOS 12.1, watchOS 5.1, tvOS 12.1, and macOS Mojave.
Xcode 10 looks amazing in combination with Dark Mode in macOS Mojave, and makes it easy for you to adopt the new look in your macOS apps as well. Xcode 10 beta includes Swift 4.2 and beta SDKs for iOS 12, watchOS 5, tvOS 12, and macOS Mojave.
Dark Mode Interface and Mac App Support
- All-new dark appearance throughout Xcode and Instruments
- Asset catalogs add dark and light variants for custom colors and image assets
- Interface Builder switches between dark and light previews of your interface
- Debug your Mac apps in dark or light variants without changing OS settings
- Changes in the local repository or upstream on a shared server are highlighted directly within the editor. At a glance, you’ll see:
- Changes made in your code.
- Changes not yet pushed to the shared repository.
- Upstream changes others have made.
- Conflicts you should address before committing.
- Support for cloud-hosted and self-hosted Git server offerings from Atlassian Bitbucket, as well as GitLab to go along with existing GitHub support.
- Xcode offers to rebase your changes when pulling the latest version of code from your repository.
- SSH keys are generated if needed, and uploaded to service providers for you.
- Place multiple cursors in your code editor to make many changes at once.
- Code folding ribbon can now hide any code block surrounded by braces.
- Over-scroll makes it easy to center the last lines of code in the middle of your screen.
Playgrounds Built for Machine Learning
- New REPL-like model reruns your existing playground code instantly.
- Run your code up to any specific line, or type shift-return to run the code you just added.
- Import the Create ML framework to interactively train new models, and then write code to test the model right in the playground. When finished, drag the model into your app.
Testing and Debugging
- Debugging symbols are downloaded from a new device five times faster than before.
- Xcode will spawn a collection of identical Simulators to take advantage of your multi-core Mac, and fan tests out to run in parallel, completing your test suite many times faster.
- Run tests in random or linear order.
- Instruments automatically show OSLog signposts you add into your code.
- Build and share your own custom instruments package to provide unique data visualization and analysis for your own code.
- Memory debugger uses a compact layout to make it easier to investigate your memory graph.
- Metal shader debugger lets you easily inspect the execution of your vertex, fragment, compute, and tile shader code.
- Metal dependency viewer provides a detailed graph of how resources are used in your Metal-based app.
- New build system enabled by default with improved performance throughout.
- Swift compiler builds each individual file significantly faster.
- Large Swift projects build for debugging dramatically faster when using the incremental build setting.
Xcode 9.3 includes Swift 4.1 and SDKs for iOS 11.3, watchOS 4.3, tvOS 11.3, and macOS High Sierra 10.13.4
- New Energy tab in the Organizer window includes logs generated when your app consumes too much power
- Swift build tasks and other commands are run in parallel more often to improve build performance
- Swift compiler adds new code size optimization, enabled with the -Osize build setting
- Quick access to callers is available by clicking on a symbol while holding the command key
- Asset catalogs support AR Reference Image files that can be detected in the real-world by your ARKit apps
- New xccov command line tool lets you inspect code coverage reports
- Improved source editor performance when working on extremely large files
Xcode 9.2 includes Swift 4 and SDKs for iOS 11.2, watchOS 4.2, tvOS 11.2, and macOS High Sierra 10.13.
- Updates to the latest platform SDKs
Xcode 9.1 includes Swift 4 and SDKs for iOS 11, watchOS 4, tvOS 11, and macOS High Sierra 10.13
- Fixes an issue in Simulator that impacted the performance of OpenGL ES and maps
- Improves support for iPhone X
Xcode 9.0.1 includes Swift 4 and SDKs for iOS 11, watchOS 4, tvOS 11, and macOS High Sierra 10.13
- Simulator improvements for iPhone X
- Fixes a problem where the Test Navigator could become out of sync with available tests
Xcode 9 includes Swift 4 and SDKs for iOS 11, watchOS 4, tvOS 11, and macOS High Sierra 10.13
- Refactoring makes it easy to modify the structure of Swift, Objective-C, C, and C++ code
- Code editor is blazingly fast and responsive and adds native support for Markdown syntax
- Fix-its apply multiple improvements to your code in a single click, and can even add required protocol methods
- New Source Control navigator and integrated GitHub accounts make it easy to manage code across a team
- Wireless installation and debugging for iOS and tvOS apps on devices over the network
- Simulator looks and behaves more like a real device and can simulate multiple devices at a time
- iOS playground templates create documents that work in both Xcode and Swift Playgrounds on iPad
- Find navigator is incredibly fast and results show up instantly
- Project navigator automatically keeps files and groups in sync with Finder and source control
- Xcode Server no longer requires macOS Server and can be fully configured in Xcode preferences
- Next-generation build system improves reliability and performance when building many projects (optionally enabled)
- Swift 4 compiler can also build Swift 3 code to enable staged migration, one module at a time
- Latest SDKs include the Core ML framework for machine learning and ARKit for augmented reality