Xcode Changelog

What's new in Xcode 15.3 Build 15E204a

Mar 6, 2024
  • Xcode 15.3 includes Swift 5.10 and SDKs for iOS 17.4, iPadOS 17.4, tvOS 17.4, watchOS 10.4, visionOS 1.1, and macOS Sonoma 14.4.
  • This update provides bug fixes and improved stability, along with features like the ability to create a screenshot of the preview canvas directly from the Editor menu.

New in Xcode 15.2 Build 15C500b (Jan 9, 2024)

  • Xcode 15.2 includes Swift 5.9 and SDKs for iOS 17.2, iPadOS 17.2, tvOS 17.2, watchOS 10.2, visionOS, and macOS Sonoma 14.2.
  • This update adds support for the visionOS SDK to create apps for Apple Vision Pro.

New in Xcode 15.1 Build 15C65 (Dec 12, 2023)

  • Xcode 15.1 includes Swift 5.9 and SDKs for iOS 17.2, iPadOS 17.2, tvOS 17.2, watchOS 10.2, and macOS Sonoma 14.2.
  • This update adds support for manually triggering Xcode Cloud workflows.

New in Xcode 15.0.1 Build 15A507 (Oct 22, 2023)

  • This update fixes an issue that could extend the Simulator launch time when executing a test, and provides improved stability.

New in Xcode 15 Build 15A240d (Sep 18, 2023)

  • Swift macro support brings inline expansions and breakpoint debugging in the source editor
  • Git staging helps craft your next commit without leaving your code
  • String catalogs streamline localization with a single place to view and edit strings
  • Bookmarks help organize your favorite locations and searches in your projects
  • Test reports provide summary view, testing insights, and video playback for UI automation results
  • OSLog offers a structured and customizable logging mechanism in the debug console
  • Documentation Preview editor brings real-time preview for DocC content
  • Archive workflows streamline distribution with simplified export and upload to TestFlight and the App Store

New in Xcode 14.3.1 Build 14E300c (Jun 2, 2023)

  • This update fixes an issue that could prevent development when targeting devices running iOS 13.
  • Xcode 14.3.1 includes Swift 5.8.1 and SDKs for iOS 16.4, iPadOS 16.4, tvOS 16.4, watchOS 9.4, and macOS Ventura 13.3.

New in Xcode 14.3.1 Build 14E300b RC (May 19, 2023)

  • Overview:
  • Xcode 14.3.1 RC includes Swift 5.8.1 and SDKs for iOS 16.4, iPadOS 16.4, tvOS 16.4, watchOS 9.4, and macOS Ventura 13.3. The Xcode 14.3.1 RC release supports on-device debugging in iOS 11 and later, tvOS 11 and later, and watchOS 4 and later. Xcode 14.3.1 RC requires a Mac running macOS Ventura 13.0 or later.
  • General:
  • Resolved Issues:
  • Fixed: When targeting devices running iOS 13, apps built with Xcode 14.3 and using Objective-C protocols from Swift, sometimes crash at launch. (108930834)
  • Asset Catalogs:
  • Resolved Issues:
  • Fixed: iOS app icons, including alternate app icons, weren’t correctly populating Info.plist entries for iPad. This made alternate app icons specified using Single Size erroneously unavailable on iPad at runtime. (108955499)
  • Playgrounds:
  • Resolved Issues:
  • Fixed: Playground live views weren’t updating correctly after making changes to the Playground code. (108413386)
  • Fixed: Xcode could crash on macOS 13.3 when adding a new page to a playground. (108952884)
  • Swift:
  • Resolved Issues:
  • Fixed: Applications using Swift Concurrency could crash when run on a specific OS version:
  • macOS 12.0 up to (but not including) macOS 12.1
  • iOS 15.0 up to (but not including) iOS 15.2
  • tvOS 15.0 up to (but not including) tvOS 15.2
  • watchOS 8.0 up to (but not including) watchOS 8.3
  • Earlier and later OS versions weren’t affected. (108837762)
  • Swift Packages:
  • Resolved Issues:
  • Fixed: Custom commands implemented by package plugins aren’t being shown in the context menu for Xcode projects. (108953641)

New in Xcode 14.3 Build 14E222b (Mar 31, 2023)

  • Xcode 14.3 includes Swift 5.8 and SDKs for iOS 16.4, iPadOS 16.4, tvOS 16.4, watchOS 9.4, and macOS Ventura 13.3.

New in Xcode 14.2 Build 14C18 (Dec 13, 2022)

  • Xcode 14.2 includes SDKs for iOS 16.2, iPadOS 16.2, tvOS 16.1, watchOS 9.1, and macOS Ventura 13.1.

New in Xcode 14.2 Build 14C18 RC (Dec 8, 2022)

  • Overview:
  • Xcode 14.2 Release Candidate includes Swift 5.7 and SDKs for iOS 16.2, iPadOS 16.2, tvOS 16.1, watchOS 9.1, and macOS Ventura 13.1. The Xcode 14.2 release supports on-device debugging in iOS 11 and later, tvOS 11 and later, and watchOS 4 and later. Xcode 14.2 Release Candidate requires a Mac running macOS Monterey 12.5 or later.
  • General:
  • Known Issues:
  • Localized strings from an AppIntent may not display properly in Shortcuts or Focus filter settings when the source app is in a folder other than /Applications. (102341465)
  • Workaround: Move the app to the /Applications folder and restart Settings or Shortcuts.
  • Previews:
  • Resolved Issues:
  • Fixed: Previews may fail in the Xcode canvas when previewing two files side-by-side when only one of them is in a Swift Package. (99296071)

New in Xcode 14.1 Build 14B47b (Nov 2, 2022)

  • Xcode 14.1 includes SDKs for iOS 16.1, iPadOS 16.1, tvOS 16.1, watchOS 9.1, and macOS Ventura.

New in Xcode 14.0.1 Build 14A400 (Sep 27, 2022)

  • This update fixes an issue that prevents development with devices running iOS 15.7.

New in Xcode 14 Build 14A309 (Sep 13, 2022)

  • Xcode 14 includes Swift 5.7 and SDKs for iOS 16, iPadOS 16, tvOS 16, watchOS 9, and macOS Monterey 12.5.
  • Xcode:
  • Downloadable simulator runtime for WatchOS and tvOS
  • Single target template for multi-platform apps across iOS, iPad OS, macOS, and tvOS
  • Automatic icon generation for all icon sizes using the Asset Catalog
  • Pinned code structure in source editor
  • Interactive SwiftUI Previews are now on by default and provide multiple UI variations from a single PreviewProvider
  • Build and Documentation:
  • Faster build performance using improved dependency analysis and increased parallelism
  • New build timeline assistant to help identify build performance issues
  • Build and command package plug-ins in Swift Packages
  • Objective-C and C API documentation support in Swift-DocC
  • Swift:
  • Syntax highlighting and refactoring operations for regular expressions
  • Smarter code completion and additional dynamic snippets

New in Xcode 13.4.1 Build 13F100 (Jun 3, 2022)

  • Xcode 13.4.1 includes SDKs for iOS 15.5, iPadOS 15.5, tvOS 15.4, watchOS 8.5, and macOS Monterey 12.3, and bug fixes.

New in Xcode 13.4 Build 13F17a (May 17, 2022)

  • Xcode 13.4 includes SDKs for iOS 15.5, iPadOS 15.5, tvOS 15.4, watchOS 8.5, and macOS Monterey 12.3, and bug fixes.

New in Xcode 13.3.1 Build 13E500a (Apr 12, 2022)

  • Xcode 13.3.1 includes SDKs for iOS 15.4, iPadOS 15.4, tvOS 15.4, watchOS 8.5, and macOS Monterey 12.3, and bug fixes including the following:
  • Bitcode_strip tool may cause apps built with bitcode to crash on launch

New in Xcode 13.3 Build 13E113 (Mar 15, 2022)

  • Xcode 13.3 includes SDKs for iOS 15.4, iPadOS 15.4, tvOS 15.4, watchOS 8.5, and macOS Monterey 12.3, along with other features and bug fixes.
  • Swift Package Manager enables extensible build tools and custom command plugins
  • Xcode Account integration adds Ed25519 encryption support for SSH keys

New in Xcode 13.2.1 Build 13C100 (Dec 19, 2021)

  • Xcode 13.2.1 includes SDKs for iOS 15.2, iPadOS 15.2, tvOS 15.2, watchOS 8.3, and macOS Monterey 12.1.
  • Xcode 13.2.1 also includes bug fixes:
  • Apps built with Swift concurrency may crash on launch
  • Xcode was unable resolve Swift packages

New in Xcode 13.2 Build 13C90 (Dec 19, 2021)

  • Xcode 13.2.1 includes SDKs for iOS 15.2, iPadOS 15.2, tvOS 15.2, watchOS 8.3, and macOS Monterey 12.1.
  • Xcode 13.2.1 also includes bug fixes:
  • Apps built with Swift concurrency may crash on launch
  • Xcode was unable resolve Swift packages

New in Xcode 13.2 Build 13C90 (Dec 14, 2021)

  • Xcode 13.2 includes SDKs for iOS 15.2, iPadOS 15.2, tvOS 15.2, watchOS 8.3, and macOS Monterey 12.1.
  • New in Xcode 13.2:
  • Support for Swift Playgrounds 4 app projects
  • Xcode Organizer displays smart insight notifications for monitoring power and performance in your app
  • Swift Concurrency is available for apps that deploy to iOS 13, iPad OS 13, tvOS 13, watchOS 6, and macOS 10.15 or newer
  • TextureConverter adds support for error metrics, decompressing textures at build time, and skipping compression when output textures are up-to-date
  • Additional bug fixes and stability improvements

New in Xcode 13.2 Build 13C90 RC (Dec 9, 2021)

  • General:
  • New Features:
  • Xcode 13.2 includes support for app projects you create with Swift Playgrounds 4. (84436977)
  • Build System:
  • New Features:
  • The build system and Swift compiler have a new mode that better utilizes available cores, resulting in faster builds for Swift projects. The mode is opt-in, and you can enable it globally with the following user default: defaults write com.apple.dt.XCBuild EnableSwiftBuildSystemIntegration 1
  • Please report any issues with the new build system mode through Feedback Assistant. (84467780)
  • Devices:
  • Resolved Issues:
  • Resolved an issue where an iOS device could become unavailable for development when the system can’t prepare a paired watch for development. (82111305) (FB9533359)
  • Interface Builder:
  • Resolved Issues:
  • Fixed an issue where Xcode crashed after you enabled a bar appearance in the inspector and then undid the action. (83695512)
  • Localization:
  • Resolved Issues:
  • Fixed an issue where the compiler didn’t extract some strings when exporting for localization. (82144823) (FB9537440)
  • Metal:
  • New Features:
  • TextureConverter 1.1 adds support for decompressing textures during build time. You can also use TextureConverter as a standalone tool to decompress textures outside the build process. Set the file path for the decompressed file with the --decompressed option. (82632250)
  • TextureConverter 1.1 adds support for error metrics. Set the --metrics option to calculate at compression time, or use --compare to calculate the error between two texture files. (82632360)
  • TextureConverter 1.1 adds support for skipping compression when the output texture is up to date. Use the --check_date option to compare the modified date and time of the input and output textures. Use the --check_details option to compare the version of TextureConverter you used for compression with the compression options you used (KTX files only). (83534773)
  • Organizer:
  • New Features:
  • Added support for smart insights notifications. You can now receive notifications when monitoring power and performance metrics in your app. To enable notifications, click the bell icon in the top right of the Xcode Organizer’s Regressions view. (66497478)
  • Previews:
  • Deprecations:
  • On-device previews no longer include watchOS and tvOS previews. Run the app to see your user interface. (84032315)
  • Project Navigator:
  • Resolved Issues:
  • Xcode performance is no longer affected when source code displays several warnings and errors. (84533671)
  • Signing and Distribution:
  • Resolved Issues:
  • Resolved an issue where Xcode required every component of a Mac app to have a provisioning profile when uploading to App Store Connect. (83833905) (FB9677186)
  • Simulator:
  • Resolved Issues:
  • Resolved an issue that prevented iPhone mini simulators from launching in Virtual Machines that don’t support Metal pass-through. (83663966) (FB9663296)
  • Note: This fix may increase CPU use and impact overall performance when running on some hardware or in a virtual machine. If necessary you can enable higher performance by reducing quality using the following: defaults write com.apple.CoreSimulator FramebufferServerUseLowQualityScaling 1
  • This mode isn’t suitable for taking screenshots, recording videos, or comparing images.
  • Known Issues:
  • CarPlay Simulator is only supported in macOS 12 Monterey. (85324172)
  • Source Control:
  • Known Issues:
  • Selecting “Open in Code Review” from “Show Last Change For Line” may sometimes open an editor that never loads. (78592315)
  • Workaround: Disable and reenable Code Review mode.
  • Source Editor:
  • Resolved Issues:
  • Fixed an issue where a project using a CocoaPods installation without a “Debug” configuration set up could have a mismatch between building and semantic functionality in the editor, leading to problems like the editor showing “live issues” that don’t exist when building. (84502615) (FB9717206)
  • StoreKit:
  • New Features:
  • StoreKit testing includes new subscription renewal rates in terms of months. If you test on operating systems earlier than macOS Monterey 12.1, iOS 15.2, tvOS 15.2, and watchOS 8.3, the operating system uses the deprecated rates in terms of days to approximate the renewal rates. (76929977)
  • Swift:
  • New Features:
  • You can now use Swift Concurrency in applications that deploy to macOS Catalina 10.15, iOS 13, tvOS 13, and watchOS 6 or newer. This support includes async/await, actors, global actors, structured concurrency, and the task APIs. (70738378)
  • Resolved Issues:
  • Fixed an issue that prevented Swift libraries depending on Combine from building for targets including armv7 and i386 architectures. (82183186, 82189214)
  • Fixed an issue that caused availability checks in iPhone and iPad apps running on a Mac with Apple silicon to always return true, which caused iOS apps running in macOS Big Sur to see iOS 15 APIs as available, resulting in crashes. These availability checks now return the correct result for apps compiled with Xcode 13.2. (83378814)
  • Mac apps built with Mac Catalyst that use Swift Concurrency now launch in an operating system prior to macOS 12 Monterey. (84393581)
  • watchOS apps that use Swift Concurrency and deploy prior to watchOS 8 now build for 64-bit watchOS simulator targets without link errors. (84394162)
  • You can now use TestFlight to distribute apps that use Swift Concurrency and deploy to operating systems prior to iOS 15, macOS 12 Monterey, tvOS 15, and watchOS 8. (84645973)
  • Known Issues:
  • Applications linking to RealityKit with iOS 15 or macOS 12 Monterey SDKs fail to launch in previous operating systems. (79584511)
  • Workaround: Add OTHER_LD_FLAGS = -weak_framework RealityFoundation to your Xcode project settings to allow running RealityKit apps in older operating systems.
  • Swift Packages:
  • Resolved Issues:
  • Fixed an issue where Template assistant didn’t offer file customization options when you created a new file in a Swift Package. (65109424) (FB7854693)
  • Resolved an issue where Swift packages with binary targets sometimes failed with a “no such module” error when attempting to import the module of a binary target. (77465707)
  • Templates:
  • Resolved Issues:
  • The SwiftUI Core Data templates now set automaticallyMergesChangesFromParent to true on their view context, so changes are visible in the view context as they occur, including when you use Core Data with CloudKit. (73022349) (FB8967865)
  • Testing:
  • New Features:
  • Xcode can now provide code coverage information when running tests for a Swift package on a Mac with Apple silicon. (71769076) (FB8919898)
  • Resolved Issues:
  • Resolved an issue where XCTest incorrectly reported the frame property of XCUIElement in some cases, particularly when the element was part of another process such as an App Extension. (41007601) (FB5354471)
  • Xcode can now run XCTest test methods marked async in macOS Catalina 10.15, iOS 13, tvOS 13, and watchOS 6 or newer. (80039766)
  • Xcode Cloud:
  • Known Issues:
  • When onboarding new products to Xcode Cloud, Xcode doesn’t include a Start Condition, causing the onboarding to fail. (84641030)
  • Workaround: During onboarding, manually add a Start Condition to the default workflow.

New in Xcode 13.2 Build 13C5081f Beta 2 (Nov 17, 2021)

  • Overview:
  • Xcode 13.2 beta 2 includes SDKs for iOS 15.2, iPadOS 15.2, tvOS 15.2, watchOS 8.3, and macOS Monterey 12.1. The Xcode 13.2 beta 2 release supports on-device debugging for iOS 9 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 13.2 beta 2 requires a Mac running macOS 11.3 or later.
  • Build System:
  • New Features in Xcode 13.2 Beta 2:
  • The build system and Swift compiler have a new mode that better utilizes available cores, resulting in faster builds for Swift projects. The mode is opt-in, and you can enable globally with the following user default:
  • defaults write com.apple.dt.XCBuild EnableSwiftBuildSystemIntegration 1
  • Please report any issues with the new build system mode through Feedback Assistant. (84467780)
  • Previews:
  • Deprecations:
  • On-device previews no longer include watchOS and tvOS previews. Run the app to see your UI. (84032315)
  • Project Navigator:
  • Resolved in Xcode 13.2 Beta 2:
  • Xcode performance is no longer affected when source code displays several warnings and errors. (84533671)
  • Signing and Distribution:
  • Resolved in Xcode 13.2 Beta 2:
  • Resolved an issue where Xcode required every component of a macOS app to have a provisioning profile when uploading to App Store Connect. (83833905) (FB9677186)
  • Source Control:
  • Known Issues:
  • Scrolling an edited file or modifying a file near the last line may cause a crash while in side-by-side comparison mode. (85395870)
  • Workaround: Either disable comparison mode, or use the inline comparison mode to modify files (enabled from the “Editor > Inline Comparison” menu item.)
  • Source Editor:
  • Resolved in Xcode 13.2 Beta 2:
  • Fixed an issue where a project using a CocoaPods installation without having a “Debug” configuration set up, could have a mismatch between building and semantic functionality in the editor, leading to problems like the editor showing “live issues” that don’t exist when building. (84502615) (FB9717206)
  • StoreKit:
  • New Features in Xcode 13.2 Beta 2:
  • StoreKit testing includes new subscription renewal rates in terms of months. If you test on operating systems earlier than macOS Monterey 12.1, iOS 15.2, tvOS 15.2, and watchOS 8.3, the operating system uses the deprecated rates in terms of days to approximate the renewal rates. (76929977)
  • Swift:
  • Resolved in Xcode 13.2 Beta 2:
  • Mac Catalyst apps that use Swift Concurrency now launch on an operating system prior to macOS 12 Monterey. (84393581)
  • watchOS apps that use Swift Concurrency and deploy prior to watchOS 8.0 now build for 64-bit watchOS simulator targets without link errors. (84394162)
  • You can now use TestFlight to distribute apps that use Swift Concurrency and deploy to operating systems prior to iOS 15, macOS 12 Monterey, tvOS 15, and watchOS 8. (84645973)
  • Known Issues:
  • Applications linking to RealityKit with the iOS 15 or macOS 12 Monterey SDKs fail to launch on previous OS. (79584511)
  • Workaround: Add OTHER_LD_FLAGS = -weak_framework RealityFoundation to your Xcode Project settings to allow running RealityKit apps on older OSes.
  • Swift Packages:
  • Resolved in Xcode 13.2 Beta 2:
  • Resolved an issue where Swift packages with binary targets sometimes failed with a “no such module” error when attempting to import the module of a binary target. (77465707)
  • Testing:
  • New Features in Xcode 13.2 Beta 2:
  • Xcode can now provide code coverage information when running tests for a Swift package on a Mac with Apple silicon. (71769076) (FB8919898)
  • Resolved in Xcode 13.2 Beta 2:
  • Resolved an issue where XCTest incorrectly reported the frame property of XCUIElement in some cases, particularly when the element was part of another process such as an App Extension. (41007601) (FB5354471)
  • Xcode can now run XCTest test methods marked async in macOS 10.15, iOS 13, tvOS 13, and watchOS 6 or newer. (80039766)
  • Unknown:
  • Known Issues:
  • CarPlay Simulator is only supported in macOS 12 Monterey. (85324172)
  • Xcode Cloud:
  • Known Issues:
  • When onboarding new products to Xcode Cloud, Xcode doesn’t include a Start Condition, causing the onboarding to fail. (84641030)
  • Workaround: During onboarding, manually add a Start Condition to the default workflow.

New in Xcode 13.2 Build 13C5066c Beta (Oct 28, 2021)

  • Overview:
  • Xcode 13.2 beta includes SDKs for iOS 15.2, iPadOS 15.2, tvOS 15.2, watchOS 8.3, and macOS Monterey 12.1. The Xcode 13.2 beta release supports on-device debugging for iOS 9 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 13.2 beta requires a Mac running macOS 11.3 or later.
  • General:
  • New Features:
  • Xcode 13.2 beta includes support for app projects created with Swift Playgrounds 4. (84436977)
  • Create ML:
  • Known Issues:
  • In the CreateML App, selecting data and clicking train doesn’t trigger the expected actions. (84309240)
  • Devices:
  • Resolved Issues:
  • Resolved an issue where an iOS device could become unavailable for development when a watch paired to it could not be prepared for development. (82111305) (FB9533359)
  • Interface Builder:
  • Resolved Issues:
  • Fixed an issue where Xcode would crash after you enabled a bar appearance in the inspector and then undid the action. (83695512)
  • Localization:
  • Resolved Issues:
  • Fixed an issue where the compiler didn’t extract some strings when exporting for localization. (82144823) (FB9537440)
  • Metal:
  • New Features:
  • TextureConverter 1.1 adds support for decompressing textures during build time. You can also use TextureConverter as a stand-alone tool to decompress textures outside the build process. To use, set the file path for the decompressed file with the --decompressed option. (82632250)
  • TextureConverter 1.1 adds support for error metrics. Set the --metrics option to calculate at compression time, or use --compare to calculate the error between two texture files. (82632360)
  • TextureConverter 1.1 adds support for skipping compression when the output texture is up to date. Use the --check_date option to compare the modified date and time of the input and output textures. Use the --check_details option to compare the version of TextureConverter used for compression and the compression options used (KTX files only). (83534773)
  • Organizer:
  • New Features:
  • Added support for smart insights notifications. Receive notifications when monitoring power and performance regressions in your app. Click the bell icon in the top-right of the Xcode Organizer’s Regressions view to enable notifications. (66497478)
  • Simulator:
  • Resolved Issues:
  • Resolved an issue that prevents iPhone mini simulators from launching in Virtual Machines that don’t support Metal pass-through. (83663966) (FB9663296)
  • Note: This fix may increase CPU use and impact overall performance when running on some hardware or in a virtual machine. If necessary you can enable higher performance by reducing quality using the following:
  • defaults write com.apple.CoreSimulator FramebufferServerUseLowQualityScaling 1
  • This mode isn’t suitable for taking screenshots, recording videos, or comparing images.
  • Swift:
  • New Features:
  • You can now use Swift Concurrency in applications that deploy to macOS 10.15, iOS 13, tvOS 13, and watchOS 6 or newer. This support includes async/await, actors, global actors, structured concurrency, and the task APIs. (70738378)
  • Resolved Issues:
  • Fixed an issue that prevented Swift libraries depending on Combine from building for targets including armv7 and i386 architectures. (82183186, 82189214)
  • Fixed an issue where availability checks in iPhone and iPad apps running on a Mac with Apple silicon always returned true, which caused iOS apps running in macOS Big Sur to see iOS 15 APIs as available and crash when trying to use those APIs. These availability checks now return the correct result for apps compiled with Xcode 13.2. (83378814)
  • Known Issues:
  • You can’t use TestFlight to distribute apps that use Swift Concurrency and deploy to operating systems prior to iOS 15, macOS 12, tvOS 15, and watchOS 8. (84645973)
  • Mac Catalyst apps that use Swift Concurrency may fail to launch on an operating system prior to macOS Monterey. (84393581)
  • Workaround: Modify the file Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk/usr/lib/swift/libswift_Concurrency.tbd in your Xcode installation and add the string $ld$previous$@rpath/libswift_Concurrency.dylib$$6$1.0$15.0$ to the end of the symbols array, then rebuild your app.
  • watchOS apps that use Swift Concurrency and deploy prior to watchOS 8 may fail to build for 64-bit watchOS simulator targets with a link error. (84394162)
  • Workaround: In the build settings for your watchOS app extension, add -lswiftCompatibilityConcurrency to “Other Linker Flags.”
  • Swift Packages:
  • Resolved Issues:
  • Fixed an issue where creating a new file in a Swift Package wouldn’t offer file customization options in the Template assistant. (65109424) (FB7854693)
  • Templates:
  • Resolved Issues:
  • The SwiftUI Core Data templates now set automaticallyMergesChangesFromParent to true on their view context, so changes are visible in the view context as they occur, including when you use Core Data with CloudKit. (73022349) (FB8967865)
  • Xcode Cloud:
  • Known Issues:
  • When onboarding new products to Xcode Cloud, Xcode doesn’t include a Start Condition, causing the onboarding to fail. (84641030)
  • Workaround: During onboarding, manually add a Start Condition to the default workflow.

New in Xcode 13.1 Build 13A1030d (Oct 25, 2021)

  • Xcode 13.1 includes Swift 5.5 and SDKs for iOS 15, iPad OS 15, tvOS 15, watchOS 8, and macOS Monterey.
  • New in Xcode 13.1:
  • Support for macOS Monterey
  • Additional bug fixes and stability improvements

New in Xcode 13.1 Build 13A1030d RC (Oct 19, 2021)

  • Overview:
  • Xcode 13.1 RC includes SDKs for iOS 15, iPadOS 15, tvOS 15, watchOS 8, and macOS Monterey 12. The Xcode 13.1 release candidate supports on-device debugging for iOS 9 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 13.1 RC requires a Mac running macOS 11.3 or later.
  • Debugging:
  • Known Issues:
  • Console, Xcode, lldb, and debugging tools can’t symbolicate crash logs that macOS transfers from connected devices running iOS 15, watchOS 8, or tvOS 15. (78124467, 83760462, 84048036, 84048399) (FB9669482)
  • Workaround: Use Xcode’s Devices & Simulators window > View Device Logs to import log files from connected devices, and transform them into a human-readable form. You can also access crash logs directly on iOS devices using the Settings app under Privacy > Analytics > Analytics Data and use AirDrop to transfer them to a Mac without any loss of information. Open the resulting log files using Console, or by dragging and dropping them onto Xcode in the Dock.
  • Interface Builder:
  • Resolved Issues:
  • Fixed rendering issues that affected UITableView for some iOS storyboards. (82731572, 83465487)
  • Fixed an issue where iPhone 13 mini wouldn’t rotate to landscape orientation. (83465491)
  • Source Control:
  • Known Issues:
  • Adding commits to a pull request in Xcode may not update the Changes navigator until you re-launch Xcode. (70398244)
  • Workaround: Re-launch Xcode.
  • The Recent Branches section may continue to display an Upstream Arrow on a branch after you push changes on that branch. (80597226)
  • Workaround: Restart Xcode to update the status.
  • Xcode may not correctly format code in pull request comments. (82143328)
  • Xcode may forget or reject credentials for GitLab Self-Hosted accounts. (82501314)
  • Repositories Navigator may sometimes display the current branch indicator on multiple branches. (82629835)
  • Workaround: Re-launch Xcode or wait for the status of these files to update.
  • In Flat view mode, the Commit sheet may sometimes present without selecting a file. (83417116)
  • Swift:
  • Resolved Issues:
  • Fixed an issue where availability checks in iPhone and iPad apps running on a Mac with Apple silicon always returned true, which caused iOS apps running in macOS Big Sur to see iOS 15 APIs as available and crash when trying to use those APIs. These availability checks now return the correct result for apps compiled with Xcode 13.1. (83378814)
  • SwiftUI:
  • Known Issues:
  • In Previews and in simulated iOS 15 devices, Button elements support the iPad cursor hover states by default, but in iOS 15.1 BorderedButtonStyle no longer has a default hover effect. Use the HoverEffect modifier on the Button to add a default hover effect when running in iOS 15.1. (83516916)

New in Xcode 13 Build 13A233 (Sep 21, 2021)

  • Xcode 13 includes Swift 5.5 and SDKs for iOS 15, iPadOS 15, tvOS 15, and watchOS 8
  • Swift adds support for concurrency, improved type inference, and faster incremental builds
  • Pull request workflow lets you view and create pull requests in Xcode
  • Code review comments with the name and avatar of the commenter are integrated in the editor
  • Xcode organizer displays Test Flight crash reports dramatically faster
  • Swift package collections help you find and integrate Swift packages in your own apps
  • Swift Docc builds documentation for your Swift framework or package directly from your source code’s documentation comments
  • Quick compare lets you compare any two versions of your source code in any editor
  • Vim mode in the editor supports common vim key combinations and editing modes
  • Simulator now includes CarPlay support with control over screen size, resolution, and variable input methods
  • Additional bug fixes and stability improvements

New in Xcode 12.5.1 Build 12E507 (Jun 22, 2021)

  • Xcode 12.5.1 supports iOS 14.5, iPadOS 14.5, tvOS 14.5, watchOS 7.4, and macOS Big Sur 11.3
  • New in Xcode 12.5.1:
  • Addresses a stability issue related to opening the Organizer window
  • Fixed an issue where XCTest code wasn't generated after pressing the Record button
  • Additional bug fixes and stability improvements

New in Xcode 12.5 Build 12E262 (Apr 27, 2021)

  • Xcode 12.5 supports iOS 14.5, iPadOS 14.5, tvOS 14.5, watchOS 7.4, and macOS Big Sur 11.3
  • New in Xcode 12.5:
  • Playgrounds documents can access symbols within the current app target
  • Simulator can record videos of your app and export the video as an animated GIF
  • Swift improves incremental build time performance
  • WatchOS apps gain improved support for automated testing
  • Localization workflow can export all projects within a workspace into a single catalog
  • Code signing performance is improved for complex projects
  • Additional bug fixes and stability improvements

New in Xcode 12.5 Build 12E5244e Beta 3 (Mar 4, 2021)

  • Code Completion:
  • Resolved Issues:
  • Code completion now returns suggestions more quickly inside large function bodies. (58687608)
  • Debugging:
  • Known Issues:
  • Xcode fails to launch apps when Nightstand Mode is enabled on Apple Watch. (61351690)
  • Workaround: Disable Nightstand Mode in Settings > General > Nightstand Mode on the Apple Watch.
  • On Macs with Apple silicon, apps crash when you build and run them using Rosetta translation on macOS Big Sur 11.3 Beta 2. (73456059)
  • Workaround: Disable debugging using the scheme editor, or upgrade to macOS Big Sur 11.3 Beta 3.
  • Devices:
  • Known Issues:
  • When running on a Mac with Apple silicon, Xcode may fail to connect to an Apple Watch device, presenting a message stating that the connection “is taking longer than expected.” While Xcode offers the option to continue to wait, the connection never completes. (74822495)
  • Workaround: Develop with a simulated watchOS device, or using an Intel Mac.
  • Signing and Distribution:
  • Resolved Issues:
  • Fixed an issue that caused OS X 10.11 and earlier to reject packages signed on OS X 10.11 and earlier. (71695608)
  • Known Issues:
  • OS X 10.11 and earlier may reject code signatures added to universal binaries by Xcode 12.5. (70724583) (FB8830007)
  • Workaround: Specify --digest-algorithm=sha1,sha256 to the codesign utility at signing time. In Xcode, specify this using the OTHER_CODE_SIGN_FLAGS build setting.
  • Simulator:
  • Known Issues:
  • When running a simulated device from a host app (such as Simulator, Xcode, or a CI server) running under Rosetta translation, spawning a new process in the simulated device fails with an “invalid device state” error. (71913373)
  • Workaround: Launch Simulator or Xcode natively.
  • Siri may not respond to voice input on simulated devices. (74158392, 74297245)
  • Siri isn’t on by default in simulated iOS and iPadOS devices. (74261033)
  • Workaround: Use the Settings app to enable Siri.
  • Siri isn’t available in simulated tvOS devices. (74261184)
  • You can’t log into iCloud on a simulated device running iOS 14.5, iPadOS 14.5, tvOS 14.5, or watchOS 7.4. (74295005)
  • Swift:
  • Resolved Issues:
  • Fixed an issue where code signing of binary targets might fail with a “bundle format unrecognized, invalid, or unsuitable” error. (74570259) (FB9014663)
  • Known Issues:
  • The compiler may generate incorrect code when you use an enum case with associated values to satisfy a protocol requirement. (72302307)
  • Deprecations:
  • The Swift compiler emits a warning for the use of the await keyword as an unqualified identifier. Wrap await with back-ticks so Swift always treats it as an identifier, or fully qualify declarations named await (for example, by adding self if it is a reference to an instance member named await from within the instance). (SE-0296, 67000350)
  • Testing:
  • Resolved Issues:
  • Xcode no longer incorrectly reports a name that starts with “” for tests that the test code dynamically generates at runtime. (73767460)
  • Deprecations:
  • Xcode no longer includes XCTest’s legacy Swift overlay library (libswiftXCTest.dylib). Use the library’s replacement, libXCTestSwiftSupport.dylib, instead. For frameworks that encounter build issues because of the removal of the legacy library, delete the framework and library search paths for libswiftXCTest.dylib and add the ENABLE_TESTING_SEARCH_PATHS=YES build setting. This setting automatically sets the target’s search paths so that it can locate the replacement XCTest library. (70365050)

New in Xcode 12.5 Build 12E5234g Beta 2 (Feb 23, 2021)

  • Overview:
  • Xcode 12.5 Beta 2 includes SDKs for iOS 14.5, iPadOS 14.5, tvOS 14.5, watchOS 7.4, and macOS Big Sur 11.3. The Xcode 12.5 Beta 2 release supports on-device debugging for iOS 9 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 12.5 Beta 2 requires a Mac running macOS Big Sur 11 or later.
  • General:
  • New Features:
  • You can create macOS File Provider extensions using the new File Provider Extension target template. (54054417)
  • Build System:
  • Resolved Issues:
  • Builds with Parallelize Build disabled no longer hit a new dependency cycle if a hosted test target with a defined TEST_HOST build setting depends on targets other than the one that produces the host bundle. (73210420)
  • Debugging:
  • Known Issues:
  • Xcode fails to launch apps when Nightstand Mode is enabled on Apple Watch. (61351690)
  • Workaround: Disable Nightstand Mode in Settings > General > Nightstand Mode on the Apple Watch.
  • Instruments:
  • Resolved Issues:
  • Launching an extension via Product > Profile in Xcode no longer causes Instruments to wait indefinitely for the process to start. (62275419) (FB7674284)
  • Fixed a crash that could occur when transferring a Metal app from Xcode to Instruments and starting recording. (70655385) (FB8824932)
  • Revised the xctrace export XML schema for Run Information. You may need to adjust code that parsed the output from earlier beta releases of Xcode 12.5. (73204384)
  • Fixed a crash that occurred when recording a trace with the Game Performance template. (73265950)
  • Signing and Distribution:
  • Resolved Issues:
  • Resolved an issue that prevented the export of distribution certificates from Xcode due to a keyboard focus issue with the authentication window. (71011727) (FB8880845)
  • Known Issues:
  • OS X 10.11 and earlier may reject code signatures added to universal binaries by Xcode 12.5. (70724583) (FB8830007)
  • Workaround: Specify --digest-algorithm=sha1,sha256 to the codesign utility at signing time. In Xcode, specify this using the OTHER_CODE_SIGN_FLAGS build setting.
  • OS X 10.11 and earlier may reject packages signed on OS X 10.11 and earlier, with an error that indicates the packages contain an invalid signature. (71695608)
  • Workaround: Re-sign the impacted packages on macOS Catalina or earlier, using the productsign command line utility.
  • Simulator:
  • Resolved Issues:
  • Fixed an issue that caused apps using WKWebView to crash on simulated devices running iOS 13.7 or earlier on a Mac with Apple silicon. (73375522)
  • Simulated devices running iOS 14.5 and iPadOS 14.5 no longer ignore the Shift key on attached keyboard devices. (73929715) (FB8988913)
  • Known Issues
  • You can’t log into iCloud on a simulated device running iOS 14.5, iPadOS 14.5, tvOS 14.5, or watchOS 7.4. (74295005)
  • Swift:
  • New Features:
  • Property wrappers now work in local contexts. (74192307)
  • Known Issues:
  • The compiler may generate incorrect code when you use an enum case with associated values to satisfy a protocol requirement. (72302307)
  • Swift Packages:
  • New Features:
  • The Swift Package Manager now builds package products and targets as dynamic frameworks automatically, if doing so avoids duplication of library code at runtime. (59931771) (FB7608638)
  • Testing:
  • New Features:
  • The code coverage report now shows the number of executable lines per file. (68808019)
  • Resolved Issues:
  • Fixed an issue where methods on XCTOSSignpostMetric threw an exception on watchOS. (72552791)
  • Fixed an issue where the adjust(toNormalizedSliderPosition:) method on XCUIElement would adjust to the wrong value for sliders in Watch apps. (73100059)
  • xcodebuild test-without-building no longer runs a test plan or scheme’s tests twice when you have disabled the test target’s “Automatically include new tests” run option. (73230328)
  • Fixed an issue where UI tests running on iOS devices using the arm64e architecture (including iPhone XS and later) failed to launch, with a Symbol not found error. (73263692)
  • Test methods and classes written in Swift and that don’t explicitly customize their Objective-C name using @objc(...) now work when using the xctest or swift test command line tools on Apple platforms. (73267118)
  • Fixed an issue where unit tests for a Watch app failed to start after the app launched. (73478326)
  • Known Issues:
  • Xcode may incorrectly report a name that starts with “” for tests the test code dynamically generates at runtime. (73767460)
  • Deprecations:
  • Xcode no longer includes XCTest’s legacy Swift overlay library (libswiftXCTest.dylib). Use the library’s replacement, libXCTestSwiftSupport.dylib, instead. For frameworks that link XCTest and encounter build issues due to this removed legacy library, replace those frameworks’ manual framework and library search paths with the build setting ENABLE_TESTING_SEARCH_PATHS=YES, which automatically configures the target with the search paths needed to locate XCTest libraries. (70365050)

New in Xcode 12.5 Build 12E5220o Beta (Feb 2, 2021)

  • Xcode 12.5 Beta includes SDKs for iOS 14.5, iPadOS 14.5, tvOS 14.5, watchOS 7.4, and macOS Big Sur 11.3. The Xcode 12.5 Beta release supports on-device debugging for iOS 9 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 12.5 Beta requires a Mac running macOS Big Sur 11 or later.
  • General:
  • New Features:
  • The Reveal Build Products Folder item in the Product menu reveals the build products directory in Finder. (72248847)
  • Resolved Issues:
  • Fixed an issue where code completion, live issues, and other code-analysis features could produce incorrect results after a user moves a source file while an Xcode project is open. (57054858)
  • Large workspaces now open faster. (70276306)
  • Apple Clang Compiler:
  • New Features:
  • The _LIBCPP_RAW_ITERATORS macro has been removed from libc++ in favor of using wrapped iterators. (63088925)
  • Build System:
  • New Features:
  • The build system no longer re-signs the hosting app target when building app-hosted test targets; instead it builds test targets before the app target’s sign task runs. This eliminates an extra codesign task, which speeds up builds for large apps with such test targets. (47322098)
  • xcodebuild now supports the -archive flag when creating an XCFramework, providing a shorthand method for creating an XCFramework from one or more archives. (64725832)
  • Known Issues:
  • Builds where Parallelize Build is turned off may hit a new dependency cycle when a hosted test target, which defines the TEST_HOST build setting, depends on targets other than the target that produces the host bundle (the one to which TEST_HOST refers). (73210420)
  • Workaround: Turn on Parallelize Build in the scheme. If it’s not possible to turn on Parallelize Build, then in the Dependencies build phase of the hosted test target, move the target that produces the host bundle to the end of the list.
  • Resolved Issues:
  • The copy files build phase now properly signs code for embedded frameworks with a framework version that isn’t “A”. (55701162) (FB7323980)
  • You can now manually reorder schemes. (61456142)
  • xcodebuild no longer double-escapes the output of xcodebuild -showBuildSettings -json. (63554669)
  • Preprocess and Assemble single-file actions now work correctly when analyze-while-building is enabled, and no longer display an empty property list in the source editor. (70811963)
  • Code Completion:
  • New Features:
  • Code completion is more reliable in expressions that contain errors, and in expressions that are ambiguous without additional context. (71378252)
  • Debugging:
  • New Features:
  • When debugging C++ programs using libc++, LLDB now offers improved expression evaluation support for STL containers and algorithms.
  • You can call member functions of STL containers, even if they are never called in the target program.
  • LLDB can instantiate templated functions from the standard library. This includes algorithms such as std::sort, std::count, std::count_if, etc. (19866497)
  • Known Issues:
  • Xcode fails to launch apps when Nightstand Mode is enabled on Apple Watch. (61351690)
  • Workaround: Disable Nightstand Mode by going to Settings > General > Nightstand Mode and toggling the switch off.
  • Instruments:
  • New Features:
  • elements in os-signpost-interval schema are now optional. This allows Custom Instruments to match signposts by name and other properties without needing to specify the expected message format. (43850670)
  • Profiling XCTest with Instruments now automatically starts the recording, without a click on the record button. (50260328)
  • Instruments can now import os_log and os_signpost data from the ktrace files that include logging-level data. (56037733)
  • Custom Instruments can now specify statically defined sub-tracks without needing to be driven by table column data. (61367995)
  • xctrace export now produces output in time-sorted order. (69804348)
  • Table of Contents query for xctrace now exposes metadata information about the run. (71320853)
  • Resolved Issues:
  • Fixed an issue where xctrace wouldn’t pass a standard input to the launched process. (17842765)
  • Fixed an issue where plot elements wouldn’t draw using the color column specified in a point schema. (71680467) (FB8913696)
  • Interface Builder:
  • New Features:
  • You can now configure a Module for custom classes in the inspector for NSObjectController and similar objects. (35971498)
  • Resolved Issues:
  • NSButton’s “Image Only” Position setting now properly displays an image without a title at runtime. (16200971)
  • Fixed an issue where the assistant editor wouldn’t display source code for a selected object’s custom Swift class if the class was annotated with @objc. (19623315)
  • Fixed an issue where connect-to-source wouldn’t properly escape Swift keywords in Outlet and Action names. (22527929)
  • Fixed an issue where Editor > Debug Selected Views failed to attach to @IBDesignable views for debugging. (45217745) (FB5645911)
  • Added Dark Mode support for the connect-to-source bindings popover. (47583413) (FB5701084)
  • Fixed iOS canvas appearance issues when importing project images with an unexpected scale. (63789933) (FB7719276)
  • Fixed an issue where the iOS text styles were sometimes missing from the font inpector. (64469937)
  • Fixed an issue where the assistant editor could open the wrong source file for a selected object’s custom class if duplicate class names existed in the project. (67362709)
  • Fixed the canvas drifting when resizing the document outline. (67505701)
  • Fixed an issue where selecting the custom color item from an inspector’s color popup menu wouldn’t open the system colors picker window. (69365980) (FB8727901)
  • Selecting a view in the canvas and performing Select All (CMD+A) no longer selects the view’s layout guides. (69518746)
  • Fixed an issue where certain connect-to-source popover labels didn’t show up in Dark Mode. (69713404)
  • Fixed an issue where the custom colors swatch in an inspector’s color properties displayed an incorrectly offset focus indicator. (72370447)
  • Localization:
  • New Features:
  • You can now use Xcode to localize applications into all ISO 639 languages. (46806165) (FB5359472)
  • You can now use workspaces to export a collection of projects for localization, generating a single localization catalog for all projects in the workspace. As part of this change, options to import and export for localization are now in the Product menu instead of the Editor menu. You can also use xcodebuild -importLocalizations and xcodebuild -exportLocalizations with the -workspace option to export or import a workspace. (48548375)
  • The new Localization Export Supported build setting lets you disable localization export for a specific target or project that doesn’t require localization. (66606145)
  • Resolved Issues:
  • Fixed an issue where the Application Language menu in the scheme editor doesn’t show all languages for which a project is localized. (28872507)
  • *-InfoPlist.strings files are now renamed to InfoPlist.strings at build-time for bundles that require Info.plist localization. This is consistent with existing behavior that renames Info.plist files at build-time. (38686398)
  • Exporting and importing for localization now produces an error if two files (ex: Main.strings and Main.storyboard) write translations to the same path. (39917359, 52412470) (FB6384066)
  • Fixed an issue where exporting color sets for localization caused Xcode to crash (63934393)
  • Fixed an issue where new-style multiline Swift string literals weren’t properly extracted for localization. (64652467) (FB7742731)
  • Localizable keys in Info.plist files are now only automatically extracted on localization export for Application and App Extension targets. (66871236)
  • Fixed an issue where strings were replaced with their keys at localization export if the .strings file is outside the directory hierarchy of the Xcode project. (69835864) (FB8761502)
  • Playgrounds:
  • New Features:
  • A Playground in an app’s project can now access symbols from the app target. New playgrounds you create have this option on by default. To enable this functionality in existing playground documents, turn on the Import App Types option in the File Inspector. (66357893)
  • Inline results for deeply nested Swift arrays and structs now display more information in Xcode Playgrounds. (67344623)
  • Resolved Issues:
  • Xcode may show the text “No Editor”, instead of opening the source editor of a playground immediately after creating it. (56484197)
  • Signing and Distribution:
  • Known Issues:
  • When attempting to export a distribution certificates from Xcode, keyboard input may fail in the authentication field, making it impossible to authenticate with a password. (71011727) (FB8880845)
  • Workaround: Export the certificate and private key using Keychain Access.
  • Simulator:
  • New Features:
  • Simulator can create animated GIFs from video recordings using the new Record Video feature. After recording a video, right-click on the video preview, then select Save as Animated GIF. To keep both the video file and the animated GIF, press and hold Option and select Save Copy as Animated GIF. You can adjust the dimensions and size of the generated GIFs in Simulator Preferences. (65089299)
  • Known Issues
  • Apps that use WKwebView may crash in simulated devices running iOS 13.7 or earlier on a Mac with Apple silicon. (73375522)
  • Source Control:
  • Resolved Issues:
  • Fixed an issue where some workspaces could fail to notice project file changes from source control operations until you quit and relaunched Xcode. (3920347)
  • StoreKit:
  • New Features:
  • StoreKit Testing in Xcode now supports testing of non-renewing subscriptions. (59478394)
  • The StoreKitTest framework is now availabe on watchOS. (68152552)
  • Swift:
  • New Features:
  • Incremental compilation is faster in many cases. When you change code within the body of a struct, class, enum, prototype, or extension, Swift now recompiles far fewer files in that module than before. (51230617)
  • Implicit member expressions now support chains of member accesses. (57295228)
  • For example, this code is now valid:
  • let milky: UIColor = .white.withAlphaComponent(0.5)
  • let milky2: UIColor = .init(named: "white")!.withAlphaComponent(0.5)
  • let milkyChance: UIColor? = .init(named: "white")?.withAlphaComponent(0.5)
  • As is the case with the existing implicit member expression syntax, the resulting type of the chain must be the same as the (implicit) base, so it isn’t well-formed to write let cgMilky: CGColor = .white.withAlphaComponent(0.5).cgColor (unless appropriate white and withAlphaComponent members were defined on CGColor.).
  • Members of a “chain” can be properties, method calls, subscript accesses, force unwraps, or optional chaining question marks. Furthermore, the type of each member along the chain is permitted to differ.
  • Swift includes more checks when bridging data from Objective-C. In particular, the runtime library aborts your program with a suitable error message if it detects a non-nullable pointer that contains a null value. (58650899)
  • Property wrappers are now supported on local variables. (73377111)
  • Functions, subscripts, and initializers may now have more than one variadic parameter, as long as all parameters that follow variadic parameters are labeled. (73676506)
  • Resolved Issues:
  • Function overloading now works in local contexts.
  • The runtime and compiler support for Swift’s is, as?, and as! operators has been overhauled, providing more consistent and predictable behavior. (58991956)
  • If your app (including loaded OS binaries) contains multiple redundant protocol conformances, Swift now uses the first one it finds in the first binary loaded (including in OS binaries). (72049977)
  • Swift Packages:
  • New Features:
  • Swift packages that specify a 5.4 tools version can now explicitly declare targets as executable, which allows the use of the @main keyword in package code [SE-0294]. (47691185)
  • Swift Package Manager caches package dependencies on a per-user basis, which reduces the amount of network traffic and increases performance of dependency resolution for subsequent uses of the same package. If needed, you can disable cache use in xcodebuild by using the new -disablePackageRepositoryCache flag. (72204929)
  • Testing:
  • New Features:
  • XCTest now supports marking test failures as “expected”. Expected test failures don’t impact the overall pass/fail result of the suite containing the test. Xcode displays expected failures differently in the Test Navigator and Test Report, and highlights the line of code where the expected failure occurred along with an optional user description. Expected test failures provide a low-overhead tool for preserving the overall “green” state of a project’s test suite when there are failures which can’t be immediately resolved, ensuring that any new failures are clearly visible. In contrast to skipping a test with XCTSkip, a test with an expected failure still runs, reporting any unexpected changes. (13408632)
  • To mark a failure as expected, call the new XCTExpectFailure API in a test before the code which produces the test failure.
  • Xcode now allows you to clean test results without having to re-open your workspace by selecting Clean Test Results from Xcode’s Product menu. (16527161)
  • Xcode now supports XCTest unit and UI tests for watchOS apps. When creating a new watchOS app, check the Include tests checkbox to add a unit and UI test target to the newly created project. For an existing project, add a unit or UI test target via File > New > Target, and then add the test target to the Test action of the WatchKit App scheme. To run the tests, select a watch simulator or device from the run destinations menu in the toolbar, and then choose Product > Test. Note that testing is supported on watchOS 7.4 or later. (21395998)
  • XCTest now automatically includes specialized subclasses of Swift generic test classes when running tests on macOS 11.3, iOS 14.5, tvOS 14.5, watchOS 7.4, or later OS versions. This allows you to use generics to improve reusability of test classes. (23493200)
  • XCTest now includes XCTAssertIdentical and XCTAssertNotIdentical APIs to assert whether two object instances are identical (the same instance) and are stricter than XCTAssertEqual by using the === operator instead of == in Swift. (46137782)
  • Known Issues:
  • XCTest’s legacy Swift overlay library (libswiftXCTest.dylib) has been removed. Don’t use this library; instead use its replacement, libXCTestSwiftSupport.dylib. Any frameworks that link XCTest and encounter build issues due to this removed legacy library need to replace their manual framework or library search paths with the build setting ENABLE_TESTING_SEARCH_PATHS=YES, which automatically configures a target with the search paths needed to locate XCTest libraries. (70365050)
  • The methods of XCTOSSignpostMetric unexpectedly throw an exception on watchOS. (72552791)
  • XCUIElement.adjust(toNormalizedSliderPosition:) may adjust to the wrong value for sliders in Watch apps. (73100059)
  • When a test target has Automatically include new tests disabled in a test plan or scheme, and tests for that test plan or scheme are run via xcodebuild test-without-building, each of the selected tests may run twice, which may lead to longer overall run times or timeouts in CI environments. (73230328)
  • Workaround: Enable Automatically include new tests for affected test targets, or use test instead of test-without-building.
  • UI tests running on iOS devices that use the arm64e architecture (including iPhone XS and later) fail to launch with a Symbol not found error. (73263692)
  • Workaround: In the Xcode build settings for affected UI test targets, under Other Swift Flags (OTHER_SWIFT_FLAGS), add -runtime-compatibility-version none.
  • Running specific test methods or classes written in Swift using the xctest or swift test command line tools doesn’t work on Apple platforms if those classes don’t explicitly customize their ObjC name using @objc(...). (73267118)
  • Workaround: Run the entire test bundle, or customize affected classes’ names using @objc(...).
  • When running unit tests for a Watch app, the tests may sometimes fail to start after the app has launched. (73478326)
  • Workaround: Run the test again, or close the simulated device and try again.
  • Resolved Issues:
  • The message String parameter of XCTSkip.init(_:file:line:) no longer includes @autoclosure incorrectly. Unlike its conditional variants XCTSkipIf and XCTSkipUnless, XCTSkip’s initializer unconditionally evaluates its message string. (63827685)
  • If a test times out (due to having Test Timeouts enabled in the active Test Plan), any content that the test emitted to standard out or standard error prior to the timeout is now included in the test log. (64591225)
  • Xcode and xcodebuild now prevent the computer from sleeping while executing tests. (67493488)
  • If code under test crashes, and Xcode is able to collect a crash report, the error message that Xcode generates in the Test Report and Test Log includes the crashing symbol, as well as the Application Specific Information field from the crash report. (69755517)

New in Xcode 12.4 Build 12D4e (Jan 27, 2021)

  • Xcode 12.4 supports iOS 14.4, iPadOS 14.4, tvOS 14.4, watchOS 7.3, and macOS Big Sur 11.2
  • New in Xcode 12.4:
  • Fixed an issue that prevented debugging iPhone or iPad apps running on an M1-powered Mac
  • Additional bug fixes and stability improvements

New in Xcode 12.4 Build 12D4e RC (Jan 22, 2021)

  • Overview:
  • Xcode 12.4 RC includes SDKs for iOS 14.4, iPadOS 14.4, tvOS 14.3, watchOS 7.2, and macOS Big Sur 11.1. The Xcode 12.4 Release Candidate supports on-device debugging for iOS 9 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 12.4 RC requires a Mac with Apple silicon running macOS Big Sur 11 or later, or an Intel-based Mac running macOS Catalina 10.15.4 or later.
  • Debugging:
  • Known Issues:
  • Xcode may hang if the host Mac is connected to an iOS device which has one or more companion watches. The hangs occur when the watches aren’t fully prepared for development, or if they are experiencing poor wireless connectivity. (72490921) (FB8945320)
  • Workaround: Power off the watches, or unpair them from the iPhone.
  • You can force Xcode to freshly prepare a watch for development using these steps:
  • Force-quit Xcode.
  • Power-off and disconnect all iOS device from the Mac.
  • Reboot the Mac.
  • Launch Xcode, close all projects, and open the Devices and Simulators window.
  • Power-on and unlock an iOS device and its companion watchOS devices by entering the passcode as required.
  • Plug the iOS device into the Mac using USB cable.
  • Check each iOS device and each watch for any pairing request and approve the requests.
  • Monitor the status of device preparation in the Devices and Simulators window. If Xcode presents device-preparation errors, follow the guidance in the error message to resolve the error.
  • Once Xcode finishes preparing the iOS device and its companion watches for development, repeat steps 5 through 8 for each remaining iOS device and its companion watches until you verify that Xcode has prepared all devices for development. You may now open your Xcode projects and resume development.
  • Sanitizers:
  • Resolved Issues:
  • Fixed a crash that could occur when launching an application with Thread Sanitizer enabled on a Mac with Apple Silicon. (72129387, 72262222, 72449940) (FB8933994, FB8938284)
  • Simulator:
  • Resolved Issues:
  • iOS simulated devices no longer display an incorrect yellow tint in translucent UI elements. Certain GPUs may continue to display the tint with some tvOS simulators. (71203015)
  • Fixed an issue that could prevent iOS apps from launching on Macs with Apple Silicon. (72360675)
  • Swift Packages:
  • Known Issues:
  • If you use a Swift package with binary dependencies in an app with extensions, the build system incorrectly embeds the binary dependencies alongside the extension in the PlugIns directory, causing validation of the archived app to fail. (69834549) (FB8761306)
  • Workaround: Add a scheme post-build action which removes the embedded binaries from the PlugIns directory after the build, e.g. rm -rf "${TARGET_BUILD_DIR}/${TARGET_NAME}.app"/PlugIns/*.framework.

New in Xcode 12.3 Build 12C33 (Dec 15, 2020)

  • Xcode 12.3 includes Swift 5.3 and SDKs for iOS 14.3, iPadOS 14.3, tvOS 14.3, watchOS 7.2, and macOS Big Sur 11.1

New in Xcode 12.3 Build 12C5020f Beta (Nov 13, 2020)

  • Overview:
  • Xcode 12.3 beta includes SDKs for iOS 14.3, iPadOS 14.3, tvOS 14.3, watchOS 7.2, and macOS Big Sur 11.1. The Xcode 12.3 beta release supports on-device debugging for iOS 9 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 12.3 beta requires a Mac with Apple silicon running macOS Big Sur 11 or later, or an Intel-based Mac running macOS Catalina 10.15.4 or later.
  • Build System:
  • Resolved Issues:
  • Fixed an issue where xcodebuild sometimes logged unexpected output about failed event streams. (33401512)
  • Devices:
  • Resolved Issues:
  • Fixed an issue that caused Xcode to spontaneously lose device configuration information for an Apple Watch. This data loss caused Xcode to either crash or display an error stating that your app “cannot be installed on (null)”. (54768855)
  • Fixed an issue where Xcode could fail to prepare a wirelessly connected iOS device for debugging with the error “Failed _shouldMakeReadyForDevelopment check”. (61227501) (FB7649607)
  • Fixed an issue that could cause Xcode to get interrupted when copying symbols from iOS devices, and never finish preparing iOS devices for debugging. The failure mainly occurred on Xcode installations used to debug multiple iOS devices which are running the same version of iOS. This bug impacted the performance of launching executables on iOS devices and attaching the debugger to them. (68221778) (FB8611135)
  • Documentation Viewer:
  • Resolved Issues:
  • Fixed a crash that could happen when opening the Documentation Window if you installed Xcode outside of /Applications. (70631583)
  • Interface Builder:
  • Resolved Issues:
  • Fixed iOS storyboard rendering issues when using UISplitViewController simulated metric sizes with UITabBarController. (69054879) (FB8704013)
  • Fixed an issue that caused Xcode to warn about multiple deprecated system color references in saved documents. (69667149) (FB8749086)
  • Fixed an issue where the background color of a UITextField could appear transparent in your app instead of the default color. (70559650)
  • Simulator:
  • New Features:
  • simctl now prints “Recording started” to stderr when it has enqueued the first frame of a video recording. Scripts or other automation can wait for that message before proceeding, to ensure the first part of the operation is captured in the resulting video. (57915463)
  • Resolved Issues:
  • simctl video recordings no longer cut off the end of the video when no screen updates are happening. The recording timeline now holds the last frame and extends until you terminate the recording with Control-C (SIGINT). (67952344) (FB8565355)
  • CoreSimulator now excludes its caches directory from Time Machine backups by default. (68782191)
  • Swift:
  • Resolved Issues:
  • Fixed a failure that could occur when compiling a project with Mac Catalyst that imports OSLog from Swift. (68597591)

New in Xcode 12.2 Build 12B45b (Nov 13, 2020)

  • Xcode 12.2 includes Swift 5.3 and SDKs for iOS 14.2, iPadOS 14.2, tvOS 14.2, watchOS 7.1, and macOS Big Sur
  • Xcode IDE adopts the refined macOS Big Sur design including updated toolbar, icons, and sidebar
  • Mac apps are updated to Universal, and Macs with Apple silicon can debug both the Apple silicon and Intel versions
  • Multiplatform template generates a single project with shared SwiftUI code across iOS, iPadOS, and macOS apps
  • Mac Catalyst projects can use the Mac idiom to take total control of the app’s interface using native scale
  • When run on a Mac with Apple silicon, Xcode can test and debug iPhone and iPad apps as they run on macOS
  • Additional features included in Xcode 12:
  • Document tabs open any type of document in a lightweight editor tab, including logs, asset catalogs, and UI files
  • StoreKit testing framework and transaction manager make it easy to test and debug in-app purchases
  • Navigator fonts are now resizable based on the system setting, or can be manually configured
  • Organizer is completely redesigned, and reports new app metrics such as hitches in animation and scrolling
  • SwiftUI Views can be turned into reusable components that appear in the Xcode library and in code completions

New in Xcode 12.2 Build 12B5044c RC (Nov 6, 2020)

  • Xcode 12.2 RC includes SDKs for iOS 14.2, iPadOS 14.2, tvOS 14.2, watchOS 7.1, and macOS Big Sur 11. The Xcode 12.2 release candidate supports on-device debugging for iOS 9 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 12.2 RC requires a Mac with Apple silicon running macOS Big Sur 11 or later, or an Intel-based Mac running macOS Catalina 10.15.4 or later.
  • General:
  • New Features:
  • When bringing iPad apps to macOS, you can now enable the “Optimize Interface for Mac” target setting to use native Mac controls and resolution. (56344940)
  • Xcode’s scheme menu now includes an Any Mac destination for Mac schemes. This is a new build destination that builds each target in the scheme for all of their supported architectures, regardless of the native architecture of the local Mac. (62736613)
  • Xcode now supports iOS, tvOS, and watchOS development on Macs with Apple silicon. (64317985, 65077539, 65701094)
  • Resolved Issues:
  • You can now upload an app for App Store submission or Developer ID notarization even if Xcode’s path contains a space. (69009477)
  • Known Issues:
  • Xcode does not prevent you from selecting a macOS destination for an iOS app when the macOS destination does not support the iOS app’s deployment target. (68261281, 68714781, 68948002)
  • If you attempt to launch the app through Xcode on an unsupported macOS destination, Xcode displays the message “The app is incompatible with the current version of macOS. Please check the app’s deployment target.”
  • Workaround: Change the iOS deployment target for the iOS app to a version supported by the macOS destination, or upgrade to a version of macOS that supports the iOS deployment target configured in the project. Apps configured with deployment targets of iOS 14 or later require the Mac to be running macOS 11 or later.
  • A red beta sash appears on the app icon, even though this is a release candidate of Xcode 12.2. (70739528)
  • Build System:
  • Resolved Issues:
  • When building on the command line, projects now build for all of their configured architectures instead of the first architecture in the list, when ONLY_ACTIVE_ARCH is set to YES and the -destination option to xcodebuild isn’t being used. (69242858)
  • Core ML:
  • Resolved Issues:
  • The Core ML editor’s Preview tab for sound classifier models now shows a classification result when you click on Listen. Also, when you add an audio file, clicking the Play button updates the timeline as the file plays. (67515312)
  • Create ML:
  • New Features:
  • You can explore and interact with models during training using the new Training Control. You can pause, save, resume, or extend the training process. This feature requires macOS 11 or later. (45241965)
  • You can train deep neural networks to stylize photos and videos in real time using the new Style Transfer template. This template requires macOS 11 or later. (55848835)
  • You can train neural networks to classify a single person’s actions in a video clip using the new Action Classification template. This template requires macOS 11 or later. (56622350)
  • You can improve model accuracy when training data is limited using the Object Detection template’s new Transfer Learning option. This feature requires macOS 11 or later. (58627183)
  • The Word Tagger template’s new Transfer Learning option uses dynamic word embeddings to help improve model accuracy when training data is limited. This feature requires macOS 11 or later. (59281335)
  • Debugging:
  • Resolved Issues:
  • Improved Xcode’s error message for app-launch failures when attempting to launch multiple instances of an app built with Mac Catalyst, or an iOS app on Mac, with the same bundle identifier. (66691875)
  • Fixed an issue where Quick Look popovers for variables in the Xcode debugger were sometimes too small and truncated their contents. (67580519)
  • Known Issues:
  • Xcode fails to install an app with multibyte UTF-8 characters in its bundle name, and presents an error of “failed to hardlink copy”. (69887557) (FB8766413)
  • Workaround: Use only uppercase letters (A-Z), lowercase letters (a-z), hyphens (-), underscores(__), and spaces in an app’s bundle name. By default, an app’s bundle name matches its target name, which you can change in the project editor.
  • Note that this issue doesn’t impact an app’s Bundle ID or Bundle Display Name, only the name of the app’s .app folder on disk, which isn’t usually seen by users.
  • When running in macOS 11, Xcode’s navigators lay out at the wrong sizes. The breakpoint navigator may not display the state of the breakpoint, and the breakpoint editor popover may never become visible. (70063096)
  • Workaround: Use macOS 11.0.1 or later.
  • Devices:
  • Known Issues:
  • Xcode may spontaneously lose device configuration information for an Apple Watch. This may cause Xcode to crash or display an error stating that your app “cannot be installed on (null)”. (54768855)
  • Workaround: On the Mac you’re using for development, run the following command in Terminal: sudo killall -9 usbmuxd
  • After running this command, restart Xcode.
  • Xcode 11 and 12 may fail to prepare a wirelessly connected iOS device for debugging with the error “Failed _shouldMakeReadyForDevelopment check”. Even if Xcode does prepare the device successfully, the Devices and Simulators window may continue to display stale errors for the device’s status. (61227501) (FB7649607)
  • Workaround: Keep the wirelessly connected iOS device unlocked while deploying or debugging an app on the device. Restart Xcode if you want to clear stale device preparation errors. Whenever possible, use a USB cable instead of a wireless connection between your Mac and iOS device.
  • Xcode may fail to copy symbols from iOS devices, and fail to prepare the devices for debugging, then take several minutes to attach to the debugger and reach breakpoints that would normally be reached immediately on launch. (68221778) (FB8611135)
  • Workaround: Re-copy symbols from your devices by following these steps.
  • Disconnect all iOS devices from your Mac.
  • Delete this directory: ~/Library/Developer/Xcode/iOS DeviceSupport
  • Open the Devices and Simulators window in Xcode.
  • Use a USB cable to connect any arm64e iOS devices (iPhone XS, iPhone XS Max, or later).
  • Wait for the Devices and Simulators window to finish copying symbols for these devices.
  • Use a USB cable to connect any arm64 iOS devices and copy their symbols.
  • After installing Xcode, you must reboot your Mac before you can use rvictl. (70403127)
  • Resolved Issues:
  • You can now debug a WatchKit App when an App Clip is added to its paired iOS App, even if that iOS App isn’t installed. (65784374, 70152797) (FB8065876)
  • Fixed a crash that could occur when you click the View Device Logs button for a device you select in the Devices and Simulators window. (66303792, 70152877)
  • Documentation Viewer:
  • Known Issues:
  • Xcode may crash when you open the Developer Documentation window if you install and run Xcode outside of /Applications. (70631583)
  • Workaround: Move Xcode to /Applications and relaunch.
  • Interface Builder:
  • New Features:
  • Interface Builder now supports Inline and Compact UIDatePicker styles. (65085323) (FB7847821)
  • Resolved Issues:
  • Enabled safe area relative margins by default for navigation bars of UINavigationController. For existing navigation controllers in storyboards, you can correct clipping by selecting the navigation bar in the controller, and enable Size Inspector > Safe Area Relative Margins. (66566017) (FB8269384)
  • Fixed an issue that could cause an NSTableView to lose its Source List style when deploying to macOS versions earlier than macOS 11. (67700315) (FB8525478)
  • Organizer:
  • Resolved Issues:
  • You can now export a watchOS app for Ad Hoc or Development distribution with thinning enabled for “All compatible device variants”. (66637482)
  • Previews:
  • New Features:
  • The action menu has a new “Embed…” menu item that lets you specify the type of View container in which to embed the selected view hierarchy. (51152198)
  • The action menu has a new “Embed in ZStack” menu item. (56989502)
  • Xcode provides SwiftUI previews for macOS Widget extensions. (57990060)
  • The SwiftUI previews canvas now automatically shows and hides based on the presence of a PreviewProvider in the file you’re editing. (67083504, 67693254)
  • The Editor menu now includes Create Preview to create a PreviewProvider, and Create Library Item to create a LibraryContentProvider. (67110969)
  • Resolved Issues:
  • Fixed an issue that prevented previews from loading in projects with non-ASCII characters in their names, or in symbols within the project. (57260388) (FB7451792)
  • Previews correctly display interpolated strings, including for localized strings. (64278576)
  • Fixed an issue that prevented previews from loading for code that contains multi-line string literals. (65735599)
  • The canvas now displays error details when a preview fails to launch due to the underlying app crashing, such as when the app doesn’t have an EnvironmentObject. (67955924)
  • Known Issues:
  • Using the device name “Mac Catalyst” in a SwiftUI PreviewDevice modifier may cause the preview to fail to update. Instead, the banner displays the error “Cannot preview in this file – rendering service was interrupted”. (65305155)
  • Workaround: Remove the previewDevice modifier and switch to the “My Mac” run destination.
  • RealityKit:
  • Known Issues:
  • Xcode can’t build an app with Mac Catalyst if the app imports the RealityKit framework (70102384)
  • Signing and Distribution:
  • New Features:
  • Xcode can now sign iOS apps for development or distribution to Macs with Apple silicon. You must register your Mac with Apple silicon on the Developer website in order to run Mac, iPhone, or iPad apps. Registration requires your Mac’s hardware identifier, which you can find in Xcode’s error message or in the System Information app’s Hardware > Provisioning UDID field. Once you’ve registered your Mac, you can use Xcode’s automatic signing or manually sign apps to run on the device. (54476962, 65752056)
  • Xcode can sign and provision an archived iOS app to run on your Mac with Apple silicon. Find the archive in the Organizer window, click on Distribute App, select either “Ad Hoc” or “Development”, choose your distribution options, select “Automatically manage signing”, and proceed through the remainder of the distribution assistant to create an IPA. Once you’ve created the IPA, you can transfer it to your Mac with Apple silicon, and double-click on it to install. During the app’s first launch, macOS prompts you to open the Security & Privacy preferences pane and enable the app. To see the launch button in the preferences pane, make sure your Mac is configured to only allow apps from the App Store and identified developers. (68513041, 68528315).
  • Resolved Issues:
  • Xcode automatic signing includes your registered Macs with Apple silicon in your provisioning profile when exporting an archive. (66857321)
  • Xcode can now distribute an archive containing an App Clip even if the parent app’s application identifier doesn’t begin with a Team ID. (67401115) (FB8461092)
  • Simulator:
  • New Features:
  • Simulated watchOS 7 devices support 64-bit processes. To verify watchOS projects are 64-bit clean in Simulator, make sure ARCHS is set to its default value. (54654060, 66352876)
  • Note:
  • Projects must be 64-bit clean to run in Simulator on Macs with Apple silicon, which doesn’t support 32-bit code.
  • Resolved Issues:
  • Fixed an issue that could cause apps linking against Core NFC to crash with an error of “Library not loaded” from dyld. (67961203)
  • Known Issues:
  • Simulators may not be available when running command-line tools like simctl or xcodebuild from a non-root LaunchDaemon, or when launching as a different user from the current user (for example, with sudo or launchctl). (62188195)
  • Simulator runtimes for iOS 13, tvOS 13, and watchOS 6 and earlier don’t work on Macs with Apple silicon. Preferences offers these runtimes for download, but creating a simulated device from one of these runtimes fails, claiming the runtime is unavailable. Future Macs with Apple silicon will support a limited set of older simulator runtimes for iOS and tvOS. (66115743, 70472441) (FB8157217)
  • Deprecations:
  • Simulators for watchOS 6 or earlier aren’t supported on Macs with Apple silicon. (66352760)
  • Source Editor:
  • Resolved Issues:
  • The source editor properly displays errors and warnings from Run Script build phases that use relative paths; clicking the issue in the Issues navigator takes you to the issue in the source editor. (43290386, 70152655) (FB5420750)
  • StoreKit:
  • Resolved Issues:
  • Fixed a crash that could occur when selecting “Subscription Options” in the StoreKit transaction manager. (68354368)
  • Swift:
  • Resolved Issues:
  • Fixed a compiler crash that could occur when a function builder body contains an empty switch statement. This issue could also cause a SourceKit crash while typing a switch statement in a SwiftUI view body. (65983237) (FB8111944)
  • Fixed a regression that caused property wrappers to leak objects during their initialization. (69023636)
  • Known Issues:
  • Compiling a project with Mac Catalyst that imports OSLog from Swift may fail. (68597591)
  • Workaround: Consider importing os.log and similar services directly, or guarding the OSLog import with a targetEnvironment compiler directive.
  • Swift Packages:
  • Known Issues:
  • Swift Packages may not respect the “Build Active Architecture Only” project build setting when you try to build universal binaries. (64344067)
  • Workaround: Use the “Any Mac”, “Any iOS Device (arm64)”, “Any watchOS Device”, or “Any tvOS Device” destination to build for all applicable devices.
  • Testing:
  • Known Issues:
  • Xcode can’t run UI tests for an iOS app on Apple silicon. If the active scheme or test plan includes both unit and UI tests, Xcode skips the UI tests, and logs a message that the UI tests were skipped in the test-activity log. (60059698)
  • Xcode doesn’t run iOS app tests in parallel on Apple silicon. The tests run sequentially instead. (60514529)
  • iOS unit tests fail to launch on Apple silicon if the test target’s host application is set to None. (65309328)
  • Workaround: In the General tab of the test target’s project settings, set the host application to an iOS application target.
  • Test Runner fails to re-launch on older simulator runtimes when the test hangs and times out. (68288321)
  • Workaround: Fix the test that is hanging, or use a newer simulator runtime version.

New in Xcode 12.1.1 Build 12A7605b RC (Nov 2, 2020)

  • Overview:
  • Xcode 12.1.1 RC includes SDKs for iOS 14.2, iPadOS 14.2, tvOS 14.2, watchOS 7.1, and macOS Catalina 10.15.6. The Xcode 12.1.1 release candidate supports on-device debugging for iOS 9 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 12.1.1 RC requires an Intel-based Mac running macOS Catalina 10.15.4 or later.
  • Devices:
  • Known Issues:
  • After installing Xcode, you must reboot your Mac before you can use rvictl. (70403127)
  • Resolved Issues:
  • You can now debug a WatchKit App when an App Clip is added to its paired iOS App, even if that iOS App isn’t installed. (65784374, 70152797) (FB8065876)
  • Fixed a crash that could occur when you click the View Device Logs button for a device you select in the Devices and Simulators window. (66303792, 70152877)
  • Source Editor:
  • Resolved Issues:
  • The source editor properly displays errors and warnings from Run Script build phases that use relative paths; clicking the issue in the Issues navigator takes you to the issue in the source editor. (43290386, 70152655) (FB5420750)

New in Xcode 12.1 Build 12A7403 (Oct 22, 2020)

  • Xcode 12.1 includes Swift 5.3 and SDKs for iOS 14.1, iPadOS 14.1, tvOS 14, watchOS 7, and macOS Catalina
  • Platform features:
  • App Clips are a small part of your app that’s discoverable at the moment it’s needed, loads in seconds, and launches quickly
  • WidgetKit uses SwiftUI to build beautiful new widgets that users can install directly on their iPhone home screen
  • StoreKit testing framework and transaction manager make it easy to test and debug in-app purchases
  • Refined user interface:
  • Document tabs open any type of document in a lightweight editor tab, including logs, asset catalogs, and UI files
  • Navigator fonts are now resizable based on the system setting, or can be manually configured
  • Code completion has a new, simplified interface that is faster, and makes it easier to choose the correct code
  • Organizer is completely redesigned, and reports new app metrics such as hitches in animation and scrolling
  • Swift and SwiftUI:
  • Performance for SwiftUI has been improved throughout, and new Lazy views can efficiently handle enormous data sets
  • 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
  • Swift compiler’s improved diagnostics make it much easier to understand coding mistakes, especially in SwiftUI code

New in Xcode 12.2 Build 12B5035g Beta 3 (Oct 14, 2020)

  • Overview:
  • Xcode 12.2 beta 3 includes SDKs for iOS 14.2, iPadOS 14.2, tvOS 14.2, watchOS 7.1, and macOS Big Sur 11. The Xcode 12.2 beta 3 release supports on-device debugging for iOS 9 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 12.2 beta 3 requires a Mac with Apple silicon running macOS Big Sur 11 or later, or an Intel-based Mac running macOS Catalina 10.15.4 or later.
  • General:
  • Known Issues:
  • Building or running an iOS app with a macOS destination may fail if you’re building the app with a newer iOS SDK than your version of macOS supports. (68261281, 68714781, 68948002)
  • The failure may present in one of the following ways:
  • The application crashes on launch
  • Xcode displays an alert stating “The operation couldn’t be completed. (OSStatus error -10825.)”
  • Xcode displays an alert stating “Unable To Install”
  • Workaround: Change the iOS deployment target for the iOS app to a version supported by the version of macOS you’re using, or upgrade to a version of macOS that supports the iOS deployment target configured in the project. macOS 11.0 beta supports the iOS 14.0 deployment target, and macOS 10.15.6 supports the iOS 13.6 deployment target when running apps built using Mac Catalyst.
  • Build System:
  • Known Issues:
  • xcodebuild double-escapes the output of xcodebuild -showBuildSettings -json. (63554669)
  • Core Data:
  • Known Issues:
  • Core Data’s model editor may display a blank Detail area for an Entity when running in macOS 11 beta 9. (69472812)
  • Debugging:
  • Known Issues:
  • Xcode fails to install an app with multibyte UTF-8 characters in its bundle name, and presents an error of “failed to hardlink copy”. (69887557) (FB8766413)
  • Workaround: Use only uppercase letters (A-Z), lowercase letters (a-z), hyphens (-), underscores(__), and spaces in an app’s bundle name. By default, an app’s bundle name matches its target name, which you can change in the project editor.
  • Note that this issue doesn’t impact an app’s Bundle ID or Bundle Display Name, only the name of the app’s .app folder on disk, which isn’t usually seen by users.
  • Previews:
  • Known Issues:
  • Using the device name “Mac Catalyst” in a SwiftUI PreviewDevice modifier may cause the preview to fail to update. Instead, the banner displays the error “Cannot preview in this file – rendering service was interrupted”. (65305155)
  • Workaround: Remove the previewDevice modifier and switch to the “My Mac” run destination.
  • Signing and Distribution:
  • Resolved Issues:
  • Xcode can now distribute an archive containing an App Clip even if the parent app’s application identifier doesn’t begin with a Team ID. (67401115) (FB8461092)
  • Simulator:
  • Resolved Issues:
  • Fixed an issue that could cause apps linking against Core NFC to crash with an error of “Library not loaded” from dyld. (67961203)
  • Fixed an issue that could prevent Shortcuts from running in simulated devices. (69516795)
  • Known Issues:
  • Simulators may not be available when running command-line tools like simctl or xcodebuild from a non-root LaunchDaemon, or when launching as a different user from the current user (for example, with sudo or launchctl). (62188195)
  • Simulator runtimes for iOS 13, tvOS 13, and watchOS 6 and earlier don’t work on the Developer Transition Kit. Preferences offers these runtimes for download, but creating a simulated device from one of these runtimes fails, claiming the runtime is unavailable. Future Macs with Apple silicon will support a limited set of older simulator runtimes for iOS and tvOS. (66115743) (FB8157217)
  • Deprecations:
  • Simulators for watchOS 6 or earlier aren’t supported on Macs with Apple silicon. (66352760)
  • Swift:
  • Resolved Issues:
  • Fixed a regression that caused property wrappers to leak objects during their initialization. (69023636)
  • Swift Packages:
  • Known Issues:
  • Swift Packages may not respect the “Build Active Architecture Only” project build setting when you try to build universal binaries. (64344067)
  • Workaround: Use the “Any Mac”, “Any iOS Device (arm64)”, “Any watchOS Device”, or “Any tvOS Device” destination to build for all applicable devices.
  • Testing:
  • Known Issues:
  • Xcode can’t run UI tests for an iOS app on Apple silicon. If the active scheme or test plan includes both unit and UI tests, Xcode skips the UI tests, and logs a message that the UI tests were skipped in the test-activity log. (60059698)
  • Xcode doesn’t run iOS app tests in parallel on Apple silicon. The tests run sequentially instead. (60514529)
  • iOS unit tests fail to launch on Apple silicon if the test target’s host application is set to None. (65309328)
  • Workaround: In the General tab of the test target’s project settings, set the host application to an iOS application target.

New in Xcode 12.0.1 Build 12A7300 (Sep 25, 2020)

  • This update fixes an issue that could cause Xcode to crash when viewing documentation

New in Xcode 12.2 Build 12B5018i Beta (Sep 22, 2020)

  • Overview:
  • Xcode 12.2 beta includes SDKs for iOS 14.2, iPadOS 14.2, tvOS 14.2, watchOS 7.1, and macOS Big Sur 11. The Xcode 12.2 beta release supports on-device debugging for iOS 9 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 12.2 beta requires a Mac with Apple silicon running macOS Big Sur 11 or later, or an Intel-based Mac running macOS Catalina 10.15.4 or later.
  • General:
  • New Features:
  • When bringing iPad apps to macOS, you can now enable the “Optimize Interface for Mac” target setting to use native Mac controls and resolution. (56344940)
  • Xcode’s run destination menu now shows an Any Mac destination for Mac schemes. This is a new build destination that builds each target in the scheme for all of their supported architectures, regardless of the native architecture of the local Mac. (62736613)
  • Xcode now supports iOS, tvOS, and watchOS development on Macs with Apple silicon. (64317985, 65077539, 65701094)
  • Known Issues:
  • Building or running an iOS app with a macOS destination may fail if you’re building the app with a newer iOS SDK than your version of macOS supports. (68261281, 68714781, 68948002)
  • The failure may present in one of the following ways:
  • The application crashes on launch
  • Xcode displays an alert stating “The operation couldn’t be completed. (OSStatus error -10825.)”
  • Xcode displays an alert stating “Unable To Install”
  • Workaround: Change the iOS deployment target for the iOS app to a version supported by the version of macOS that you are using, or upgrade to a version of macOS that supports the iOS deployment target configured in the project. macOS 11.0 beta supports the iOS 14.0 deployment target, and macOS 10.15.6 supports the iOS 13.6 deployment target when running apps built using Mac Catalyst.
  • Apple Clang Compiler:
  • Known Issues:
  • On Macs with Apple silicon, strip, install_name_tool and vtool may corrupt the ad-hoc code signatures generated by the linker for arm64 Mach-O files. (51911417)
  • Build System:
  • Resolved Issues:
  • xcodebuild no longer incorrectly double-escapes the output of xcodebuild -showBuildSettings -json. (63554669)
  • Core ML:
  • Resolved Issues:
  • The Core ML editor’s Preview tab for sound classifier models now shows a classification result when you click on ‘Listen’. Also, when you add an audio file, clicking the Play button updates the timeline as the file plays. (67515312)
  • Devices:
  • Resolved Issues:
  • You can debug a WatchKit App when an App Clip is added to its paired iOS App, even if that iOS App isn’t installed. (65784374) (FB8065876)
  • Known Issues:
  • rvictl hangs on macOS 11. (65205535)
  • Interface Builder:
  • New Features:
  • Added support for Inline and Compact UIDatePicker styles. (65085323) (FB7847821)
  • Resolved Issues:
  • Fixed the search field clipping on a navigation bar when first dragged from the object library. For existing navigation controllers in storyboards, you can correct clipping by selecting the navigation bar in the controller, and enable Size Inspector > Safe Area Relative Margins. (66566017) (FB8269384)
  • Fixed an issue that could cause an NSTableView to lose its Source List style when deploying to macOS versions earlier than macOS 11. (67700315) (FB8525478)
  • Organizer:
  • Resolved Issues:
  • Thinning for “all compatible device variants” no longer causes export of a watchOS application for Ad Hoc or Development distribution to fail. (66637482)
  • Known Issues:
  • When the Organizer is first launched, the sidebar might become horizontally scrollable and the selected item may not be highlighted. (67498422)
  • Playgrounds:
  • Known Issues:
  • Playgrounds may crash when presenting a live view on a Mac with Apple silicon. (68930351)
  • Previews:
  • New Features:
  • The new “Embed…” option in the action menu lets you embed in a user-specified View container. (51152198)
  • The action menu now includes an “Embed in ZStack” option. (56989502)
  • The Editor menu now includes Create Preview to create a PreviewProvider, and Create Library Item to create a LibraryContentProvider. (67110969)
  • Resolved Issues:
  • Fixed an issue that prevented previews from loading in projects with non-ASCII characters in their names, or in symbols within the project. (57260388) (FB7451792)
  • Previews correctly display interpolated strings, including for localized strings. (64278576)
  • Fixed an issue that prevented previews from loading for code that contains multi-line string literals. (65735599)
  • On Intel-based Macs, previews now load for iOS, watchOS, or tvOS projects that depend on libraries without an arm64 slice. (65890022)
  • The previews canvas now automatically shows and hides based on the presence of a PreviewProvider in the file being edited. (67083504, 67693254)
  • The canvas displays error details when a preview fails to launch due to the underlying app crashing, such as when the app does not have an EnvironmentObject. (67955924)
  • Known Issues:
  • Xcode doesn’t provide previews for macOS widget extensions. (57990060)
  • Using the device name “Mac Catalyst” in a PreviewDevice modifier may cause the preview to fail. (65305155)
  • Workaround: Remove the previewDevice modifier and switch to the “My Mac” run destination.
  • Signing and Distribution:
  • New Features:
  • Xcode can now sign iOS apps for development or distribution to Macs with Apple silicon. You must register your Mac with Apple silicon on the Developer website in order to run Mac, iPhone, or iPad apps. Registration requires your Mac’s hardware identifier, which you can find in Xcode’s error message or in the System Information app’s Hardware > Provisioning UDID field. Once you’ve registered your Mac, you can use Xcode’s automatic signing or manually sign apps to run on the device. (54476962, 65752056)
  • Xcode can sign and provision an archived iOS app to run on your Mac with Apple silicon. Find the archive in the Organizer window, click on Distribute App, select either “Ad Hoc” or “Development,” choose your distribution options, select “Automatically manage signing,” and proceed through the remainder of the distribution assistant to create an IPA. Once you’ve created the IPA, you can transfer it to your Mac with Apple silicon, and double-click on it to install. During the app’s first launch, you will be prompted to open the Security & Privacy preferences pane to enable the app. To see the launch button in the preferences pane, make sure your Mac is configured to only allow apps from the App Store and identified developers. (68513041, 68528315).
  • Resolved Issues:
  • When distributing an iOS archive using the Ad Hoc or Development method, Xcode validates that Macs with Apple silicon are included in the provisioning profile generated by automatic signing. (66803918)
  • Xcode automatic signing includes your registered Macs with Apple silicon in your provisioning profile when exporting an archive. (66857321)
  • Known Issues:
  • An app built with Mac Catalyst and signed to run locally on macOS may fail to run with the Mac (Rosetta) run destination. (64421496)
  • Simulator:
  • New Features:
  • Simulated watchOS 7 devices support 64-bit processes. To verify watchOS projects are 64-bit clean in Simulator, make sure ARCHS is set to its default value. (54654060, 66352876)
  • Note: Projects must be 64-bit clean to run in Simulator on Macs with Apple silicon, which don’t support 32-bit code.
  • Known Issues:
  • Simulators for iOS 13, tvOS 13, and watchOS 6 or earlier don’t run on the Developer Transition Kit, even though Xcode Preferences allows you to download these older runtimes. Future Macs with Apple silicon will support some older iOS and tvOS Simulators. (66115743) (FB8157217)
  • SwiftUI projects using StoreKit fail to build in simulated watchOS devices. (68931021, 68935233)
  • Workaround: Build and run on a device.
  • Deprecations:
  • Simulators for watchOS 6 or earlier require 32-bit processes that aren’t supported on Macs with Apple silicon. (66352760)
  • StoreKit:
  • Resolved Issues:
  • Fixed a crash that could occur when selecting “Subscription Options” in the StoreKit transaction manager. (68354368)
  • Swift:
  • Known Issues:
  • The compiler may crash when a function builder body contains an empty switch statement. This issue can also cause a SourceKit crash while typing a switch statement in a SwiftUI view body. (65983237) (FB8111944)
  • Swift Packages:
  • Known Issues:
  • Swift Packages may not respect the “Build Active Architecture Only” project build setting when you try to build universal binaries. (64344067)
  • Workaround: Use the “Any Mac”, “Any iOS Device (arm64)”, “Any watchOS Device”, or “Any tvOS Device” destination to build for all applicable devices.
  • Testing:
  • Known Issues:
  • Xcode can’t run UI tests for an iOS app on Apple silicon. If the active scheme or test plan includes both unit and UI tests, Xcode skips the UI tests, and logs a message that the UI tests were skipped in the test-activity log. (60059698)
  • Xcode doesn’t run iOS app tests in parallel on Apple silicon. The tests run sequentially instead. (60514529)
  • iOS unit tests fail to launch on Apple silicon if the test target’s Host Application is set to None. (65309328)
  • Workaround: Set the host application to an iOS application target.

New in Xcode 12 Build 12A7209 (Sep 17, 2020)

  • Xcode 12 includes Swift 5.3 and SDKs for iOS 14, iPadOS 14, tvOS 14, watchOS 7, and macOS Catalina
  • Platform features:
  • App Clips are a small part of your app that’s discoverable at the moment it’s needed, loads in seconds, and launches quickly
  • WidgetKit uses SwiftUI to build beautiful new widgets that users can install directly on their iPhone home screen
  • StoreKit testing framework and transaction manager make it easy to test and debug in-app purchases
  • Refined user interface:
  • Document tabs open any type of document in a lightweight editor tab, including logs, asset catalogs, and UI files
  • Navigator fonts are now resizable based on the system setting, or can be manually configured
  • Code completion has a new, simplified interface that is faster, and makes it easier to choose the correct code
  • Organizer is completely redesigned, and reports new app metrics such as hitches in animation and scrolling
  • Swift and SwiftUI:
  • Performance for SwiftUI has been improved throughout, and new Lazy views can efficiently handle enormous data sets
  • 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
  • Swift compiler’s improved diagnostics make it much easier to understand coding mistakes, especially in SwiftUI code

New in Xcode 11.7 Build 11E801a (Sep 2, 2020)

  • Xcode 11.7 supports developing apps with SDKs for iOS 13.7, tvOS 13.4, watchOS 6.2, and macOS Catalina 10.15.6
  • New Exposure Notification APIs provide additional information about potential exposures

New in Xcode 11.6 Build 11E708 (Jul 16, 2020)

  • Xcode 11.6 supports developing apps for iOS 13.6, iPadOS 13.6, tvOS 13.4, watchOS 6.2, and macOS Catalina 10.15.6
  • DriverKit API enhancements in the macOS SDK
  • Additional bug fixes and stability improvements

New in Xcode 11.5 Build 11E608c (May 21, 2020)

  • Xcode 11.5 supports developing apps for iOS 13.5, iPadOS 13.5, tvOS 13.4, watchOS 6.2, and macOS Catalina 10.15.4
  • Supports the Exposure Notification API
  • Bug fixes and stability improvements

New in Xcode 11.5 Build 11N605c Beta (May 5, 2020)

  • Xcode 11.5 beta includes SDKs for iOS 13.5, iPadOS 13.5, tvOS 13.4, watchOS 6.2, and macOS Catalina 10.15.4. The Xcode 11.5 beta release supports on-device debugging for iOS 8 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 11.5 beta requires a Mac running macOS Catalina 10.15.2 or later.
  • Apple Clang Compiler:
  • Resolved Issues:
  • Fixed an issue with incorrect code generation when targeting armv7 devices. (61901594)
  • Asset Catalog:
  • Known Issues:
  • watchOS and tvOS apps with asset catalogs built with Xcode 11.4 or newer may experience slower image-loading performance on devices running on watchOS 6.1 or earlier, or when in dark mode on tvOS 13.3 or earlier. (62328605)
  • Workaround: Add a symbol glyph to the app’s asset catalog.
  • Resolved Issues:
  • Restored image-loading performance for apps in dark mode on devices running iOS 13.3 or earlier. (61200701) (FB7648891)
  • Debugging:
  • Resolved Issues:
  • Symbol names are no longer printed in stack frames in the console by default, as this combination can result in deadlocks when running Thread Sanitizer on simulated devices. For schemes that don’t have the option to gather code coverage enabled, you can re-enable symbol names and source locations by adding a TSAN_OPTIONS environment variable with the value symbolize=1 in the scheme editor. (61840387)
  • Interface Builder:
  • Resolved Issues:
  • Fixed a crash that could occur with connect-to-source when control-dragging an object over a class with an @end keyword that shares a line with the previous item. (61957256)
  • Localization:
  • Resolved Issues:
  • genstrings continues to look for additional instances of a localization token, such as “Text”, after finding it as part of an identifier. (61903372)
  • When performing string extraction, genstrings only interprets SwiftUI constructs within Swift files. (60440513, 61903448)
  • Playgrounds:
  • Resolved Issues:
  • Reveal in Project Navigator now shows the contents of playground books. (61902475)
  • Signing and Distribution:
  • Resolved Issues:
  • Fixed an issue that prevented automatic signing from making changes if the app IDs used a seed prefix and not a team ID prefix. (59672760) (FB7593038)
  • Simulator:
  • Known Issues:
  • Invoking Siri may cause iOS to crash. (62333338)
  • Swift:
  • Resolved Issues:
  • Fixed a crash that occured when a property with an attached property wrapper was declared with the same name as another property in the same scope. (61902377)

New in Xcode 11.4 Build 11E146 (Mar 25, 2020)

  • Xcode 11.4 supports developing apps for iOS 13.4, iPadOS 13.4, tvOS 13.4, watchOS 6.2, and macOS Catalina 10.15.4
  • Interface Builder and Simulator work with the new cursor support in iPadOS
  • MacOS projects now support App Store universal purchase
  • Simulator can trigger remote push notifications
  • Tests written in Swift report the location in your code where errors originated and then highlight the line
  • Additional bug fixes and stability improvements

New in Xcode 11.4 Build 11N111s Beta (Feb 14, 2020)

  • General:
  • New Features:
  • Xcode 11.4 supports building and distributing macOS apps as a universal purchase. To distribute your macOS app as a universal purchase, specify the same bundle identifier as your iOS app in the Xcode template assistant when creating a new project. If you have an existing project, edit its bundle identifier in the Project Editor.
  • Universal purchase is enabled by default for new Mac Catalyst apps created in Xcode 11.4. When you create a new Mac Catalyst app, it will use the same bundle identifier as your iOS app.
  • Automatic signing in Xcode 11.4 supports building Mac Catalyst apps with a custom bundle identifier. You can edit the bundle identifier of your app using the Signing & Capabilities tab in the Project Editor. If you choose to build your Mac Catalyst app with a custom bundle identifier that does not match your iOS app, you will not be able to distribute the app as a universal purchase.
  • Resolved Issues:
  • Creating an Objective-C category file by choosing File > New > File no longer creates a file that includes an import of the AppKit framework. (55977950) (FB7346800)
  • Build System:
  • New Features:
  • Build settings have a new evaluation operator, default, which you can use to specify the default value of a build setting if it evaluates to nil in the context of the evaluation.
  • Building codeless kernel extensions with the new build system now requires that you set the GENERATE_KERNEL_MODULE_INFO_FILE build setting to NO. (57247534)
  • Debugging:
  • New Features:
  • The view debugger now presents layout guides (UILayoutGuide, NSLayoutGuide) and their referencing constraints. (20387325)
  • View debugging supports showing layers using the Show Layers menu item in the Editor menu. (15775898)
  • The exception reason now surfaces as an editor annotation. You can inspect the Exception object in Variables View and find the backtrace of the original uncaught exception, if any, in the Debug Navigator. (8045587)
  • Resolved Issues:
  • Improved visibility of view outlines in the view debugger. (44861893) (FB5361403)
  • Devices:
  • Known Issues:
  • Icons and names for devices running iOS 13.0 may not reflect the correct OS version in the Devices and Simulators window. (55044395)
  • Workaround: Reboot macOS.
  • Instruments:
  • Known Issues:
  • When profiling an app on a device connected via the network, Instruments may report that the device is unavailable, indicating it is "Waiting for Xcode to download symbols from device." (59169574)
  • Workaround: Profile the app on a device using a wired connection, or on a simulated device.
  • Interface Builder:
  • New Features:
  • Added dynamic system gray colors to inspector color pickers. (55403376) (FB7281404)
  • Removed inspector support for configuring NSTableColumn header cell fonts to match the API. You can configure header cell fonts by subclassing NSTableHeaderCell and overriding the font property in code. (23664679) (FB5630174)
  • Known Issues:
  • Xcode may hang in some storyboards with iOS popovers. (59070586)
  • Workaround: Re-open Xcode using Shift.
  • Xcode may crash when opening a particular nib (TestVectorLabelController.storyboard from UIKit) which uses a popover presentation. (58421606)
  • Workaround: Re-open Xcode using Shift.
  • Resolved Issues:
  • Fixed an issue where the inspector section for NumberFormatter Symbols had a light background in dark mode. (57393302) (FB7459536)
  • Fixed an issue where several NSResponder actions were missing from the Connections Inspector. (56546759) (FB7403346)
  • Fixed a crash that could occur when moving duplicate NSComboBox items in the Inspector. (55796760)
  • Fixed an issue where the “Interface Style” “Simulated Metrics” inspector setting wouldn’t apply to objects being dragged. (55207867)
  • Fixed an issue where named Global Tint colors weren’t properly unarchived during Interface Builder document loading resulting in incorrect Global Tint colors on subsequent document saves. (55158004) (FB7232333)
  • Fixed an issue where unrecognized system colors wouldn’t have their fallback colors preserved after loading and saving Interface Builder documents. (54623340)
  • Fixed a bug that prevented entering a 0 constant in the constraint popup editors. (54076090)
  • Fixed an issue where XIB template files didn’t have dynamic background colors. (53907727) (FB6918296)
  • Fixed a crash that would occur if an NSLevelIndicator Minimum inspector value was higher than its Maximum. (53302326) (FB6740368)
  • Fixed an issue where Interface Builder documents containing UINavigationBar titles configured with named colors could be archived with duplicate named color resources. (52162293) (FB6253352)
  • Fixed an issue where Apple TV UITableViewCell safe area frames displayed incorrectly in XIB files. (51679086)
  • Fixed an issue where Xcode could crash after configuring text to be non-attributed. (46228389) (FB5673720)
  • Organizer:
  • New Features:
  • The Crashes Organizer now shows crash logs for universal purchase macOS apps. (57607495)
  • Previews:
  • New Features:
  • You can now copy, cut, paste, duplicate, and delete views directly within the Xcode Previews canvas. (56134191)
  • Selecting a SwiftUI preview in code now highlights the corresponding preview in the canvas, and vice versa. (56412209)
  • Known Issues:
  • In some cases the preview layout extends beyond the safe areas for iOS. (58963049)
  • Workaround: Add padding around the view you are previewing.
  • Using ForEach for setting Preview properties may result in preview failure. (58985849)
  • Workaround: Use Group.
  • Previewing is not supported on devices running tvOS 13.4 beta or watchOS 6.2 beta. (59014002)
  • Resolved Issues:
  • Xcode Previews now supports previewing iPad applications brought to the Mac. (41416222)
  • Entering live mode in the canvas for Xcode Previews now happens immediately. (46505269)
  • Fixed an issue where some Xcode Previews would spin forever when first updating. (55560302)
  • Xcode Previews now correctly builds previews in frameworks that depend on other frameworks in the project. (56956786)
  • Fixed a crash in Xcode Previews that could occur when using the inspectors. (55933725)
  • Simulator:
  • New Features:
  • Dragging and dropping an SSL certificate (CER or PEM file) will now install the certificate into the simulated device’s trusted root store. (56225826)
  • simctl supports a keychain subcommand. This command can add certificates to the trusted root store or the keychain. It can also reset the keychain, deleting all saved items.
  • simctl now supports modifying privacy permissions. You can modify privacy permissions to create known states for testing purposes.
  • Simulator supports toggling appearance for iOS simulators (13.0 and later). From within the app select Debug > Toggle Appearance. From the command line use the simctl ui subcommand, e.g. to set dark appearance (54556446) (FB7093020)
  • Simulator now has a menu item and keyboard shortcut to bring up the app switcher in iOS Simulators. (54252732) (FB7014782)
  • simctl status_bar now allows changing the operator (carrier) name. (54162823) (FB6985308)
  • Simulator now has a menu item to trigger the guest screenshot feature in iOS simulators. This saves a screenshot to the simulated device’s camera roll. The existing screenshot feature has been renamed “Save Screen” for clarity and continues to save the device‘s framebuffer to your Mac's desktop by default. Hold Option when saving the screen to change the default location. (52852628)
  • tvOS simulators no longer capture the TouchBar as if it were a Siri Remote paired with your Mac. (48547948)
  • Simulator supports simulating remote push notifications, including background content fetch notifications. In Simulator, drag and drop an APNs file onto the target simulator. The file must be a JSON file with a valid Apple Push Notification Service payload, including the “aps” key. It must also contain a top-level “Simulator Target Bundle” with a string value matching the target application‘s bundle identifier.
  • simctl also supports sending simulated push notifications. If the file contains “Simulator Target Bundle” the bundle identifier is not required, otherwise you must provide it as an argument (8164566)
  • Simulator has a new UI that streamlines working with simulated devices. Simulated device windows have a standard title bar, with buttons for common tasks. App-level settings are now available in the Preferences window. (57715023, 57380865, 58013098)
  • Known Issues:
  • Third-party “endpoint security” software may cause slow simulators, system freezes, or prevent debug processes from running in simulators reliably. This sometimes manifests as debugserver disconnections, or sends simulator applications a SIGKILL signal. (55853555)
  • Workaround: Uninstall the third-party software.
  • Resolved Issues:
  • CoreSimulator now cleans up temporary files generated by Interface Builder during the build process. (53568836)
  • When multiple GPUs are installed in the new Mac Pro, Simulator assigns each booted simulator to one of the available GPUs. (50608554)
  • Fixed an issue that could cause certain kinds of IOSurfaces in simulators to corrupt memory or be created with the wrong memory protection. (52899754)
  • Source Control:
  • New Features:
  • Improved stability of core source control functionality, and reduced memory footprint related issues. (54765574)
  • Split functionality of “Fetch and Refresh Status” menu item into two separate menu items to separate fetching and refreshing status. (54326241)
  • Source Editor:
  • Resolved Issues:
  • A rename refactor of a Swift or Objective-C object correctly renames the file containing the object. (32408445)
  • Swift Packages:
  • New Features:
  • Remote Swift packages with tools version 5.2 and above no longer resolve package dependencies that are only used in their test targets, improving performance and reducing the chance of dependency version conflicts. (56925017)
  • Swift Package Manager uses a new strategy for resolving package dependencies that significantly improves the quality of error messages and performance in complex package graphs. (45371461)
  • Resolved Issues:
  • iOS, tvOS, or watchOS apps with a Swift Package that builds a dynamic library can be submitted to the App Store. (55564324) (FB7303066)
  • You can now use Swift-only XCTest APIs (such as XCTUnwrap(_:_:file:line:)) when building a package using command-line SwiftPM. (51959291)
  • Swift:
  • New Features:
  • You can call values of types that declare func callAsFunction methods like functions. The call syntax is shorthand for applying func callAsFunction methods.
  • You must include func callAsFunction argument labels at call sites. You can add multiple func callAsFunction methods on a single type, and you can mark them as mutating. func callAsFunction works with throws and rethrows, and with trailing closures. (59014791)
  • Subscripts can now declare default arguments. (59012048)
  • A class-constrained protocol extension, where the extended protocol does not impose a class constraint, now infers the constraint implicitly. (59011997)
  • Convenience initializer inheritance for subclasses defined outside of the module defining the base class now comes with additional restrictions. When these subclasses have a base class with non-public designated initializers, they no longer automatically inherit convenience initializers from their superclasses. To restore this automatic inheritance behavior, the base class must ensure that all of its designated initializers are public or open. (51249311)
  • Xcode and the corresponding Command Line Tools package include the SourceKit-LSP language server for Swift and C-based languages. The language server is in early development, and this is a great time to experiment with it. SourceKit-LSP can be used with third-party tools that support the Language Server Protocol (LSP), and it supports Swift Packages built from the command-line. For information about using SourceKit-LSP see Getting Started with SourceKit-LSP. (48004600)
  • The Swift compiler uses a new strategy for producing diagnostics that drastically improves the quality and precision of error messages. Details about this new strategy can be found on the post New Diagnostic Architecture Overview on the Swift blog. (36854046)
  • A method override can no longer have a generic signature with requirements not imposed by the base method.
  • Resolved Issues:
  • The compiler now correctly strips argument labels from function references used with the as operator in a function call. As a result, you can now use the as operator to disambiguate a call to a function with argument labels.
  • Previously this was only possible for functions without argument labels. This change also means that you can no longer use a generic type alias to preserve the argument labels of a function reference through the as operator.
  • You must instead call the function value without argument labels. (59011892)
  • The compiler now supports local functions whose default arguments capture values from outer scopes. (SR-2189) (20796451)
  • Testing:
  • New Features:
  • To enable test timeout behavior from xcodebuild, or to override the corresponding setting in the test plan, pass the test-timeouts-enabled option. To configure the default execution time allowance for an individual test when timeouts are enabled, pass the -default-test-execution-time-allowance option. To enforce an absolute cap on the amount of time a test can run (if it requests additional time via the executionTimeAllowance API), pass the -maximum-test-execution-time-allowance option. Refer to the xcodebuild man page (man xcodebuild) for more information. (58413928)
  • You can enable test timeouts through the “Test Timeouts” option in the test plan. You can override this value from the command-line through the -test-timeouts-enabled option to xcodebuild. (58125818)
  • The XCTAssertEqualWithAccuracy and XCTAssertNotEqualWithAccuracy APIs now support all FloatingPoint types. (57523034)
  • When building a scheme which has been converted to use test plans and whose active test plan has code coverage enabled, Xcode now includes code coverage instrumentation when building for the ‘Run’ action in addition to the ‘Test’ action. This matches the behavior of building schemes which do not use test plans and have code coverage enabled, and avoids unnecessary rebuilds when alternating between running and testing actions. (57367856)
  • Resetting the authorization status of a protected resource (e.g. Contacts, Bluetooth or Location) is now supported in UI testing contexts. XCUIApplication gains a new method, resetAuthorizationStatus(for:), that accepts an XCUIProtectedResource. This allows test authors to easily set the the authorization status of apps to their initial state, providing a convenient way to test first-launch / first-access flows of their resources. (56628656)
  • Xcode’s New File templates for XCTest in Swift now include the throws keyword for all test methods. Errors thrown by test methods are recorded as test failures. (56619497)
  • If you enable parallel testing for a test target in the active scheme/test plan, and you pass the -parallelize-tests-among-destinations flag to xcodebuild along with multiple destination specifiers, Xcode distributes test classes within that target among the destinations to speed up test execution. (56585597)
  • UI testing and recording on macOS support the Fn key modifier. (56178883)
  • When you run xcodebuild build-for-testing for a scheme that uses test plans, its generated .xctestrun file now includes metadata about each test plan, including the name of the test plan and whether it is the scheme’s default plan. (53997527)
  • Xcode now has better support for test support frameworks and libraries by introducing an “Enable Testing Search Paths” build setting. This build setting is on by default for test bundle targets, as well as for targets which explicitly include XCTest.framework in their “Link Binary With Libraries” list. Source files in such targets can now import XCTest without setting any custom search paths. (51117167)
  • XCTest has improved error handling and logging for the case where a custom XCTestObservation implementation throws an exception. (44291078)
  • xcodebuild now validates the deployment target and architecture of built products when running xcodebuild test-without-building with the -xctestrun flag. Targets that aren’t compatible with the requested run destination are skipped. (43107996)
  • XCTest now includes throwing variants of the setUp() and tearDown() instance methods, allowing tests to throw errors in Swift during set up or tear down. Override the setUpWithError() or tearDownWithError() methods instead of setUp() or tearDown(), respectively. If an error is thrown by setUpWithError(), the test method is not executed, and if the error was due to calling an XCTSkip* API, the test is marked as skipped instead of failed. (42069831)
  • Xcode now validates the deployment target of test bundle targets, and skips running any tests that are incompatible with the selected run destination. Some targets may require a change to their minimum deployment target build setting to continue to run on older run destinations. (39775813)
  • Errors thrown by Swift test methods now record the source location where the error was thrown. Xcode highlights these lines in the source editor and allows jumping to those locations from the Issue Navigator. (26370684)
  • Xcode now opens files in the source editor after they are created by clicking the ‘+’ button in the Test Navigator. (17088680)
  • XCTest now supports dynamically skipping tests based on runtime conditions, such as only executing some tests when running on certain device types or when a remote server is accessible. When a test is skipped, Xcode displays it differently in the Test Navigator and Test Report, and highlights the line of code where the skip occurred along with an optional user description. Information about skipped tests is also included in the .xcresult for programmatic access.
  • To skip a test, call one of the new XCTSkip* functions from within a test method or setUp().
  • The XCTSkipUnless(_:_:file:line:) API is similar to XCTSkipIf(_:_:file:line:) but skips if the provided expression is false instead of true, and the XCTSkip API can be used to skip unconditionally. (13696693)
  • XCTest now allows individual tests to time out if they exceed a configurable duration of time. If timeouts are enabled, either via a test plan option or via an xcodebuild command-line option, a test will be given a default allowance within which it must complete. Tests that exceed this length of time will fail, and a spindump of the test process will be attached to the test in the test report. If the test needs additional time to run, it can request so via the executionTimeAllowance property on XCTestCase. For more information, refer to the documentation in XCTestCase.h. (12584283)
  • Resolved Issues:
  • XCTest now correctly handles large wait timeout values passed to XCTWaiter “wait” APIs, such as DBL_MAX. (56503613)
  • Source editor test diamonds for tests in Swift packages now appear automatically upon opening the package in Xcode. (51105554)
  • Previously, when running UI tests, the target under test was (re)installed before each test started. Starting in Xcode 11.4, the target under test is installed once per test session and device, speeding up UI tests considerably. (24776269)

New in Xcode 11.3.1 Build 11C504 (Jan 14, 2020)

  • Xcode 11.3.1 supports developing apps for iOS 13.3, iPadOS 13.3, tvOS 13.3, watchOS 6.1.1, and macOS Catalina 10.15.2
  • Addresses a bug in the storyboard canvas that could cause Xcode to crash
  • Additional bug fixes and stability improvements

New in Xcode 11.3 Build 11C29 (Dec 11, 2019)

  • Xcode 11.3 supports developing apps for iOS 13.3, iPadOS 13.3, tvOS 13.3, watchOS 6.1.1, and macOS Catalina 10.15.2
  • Adds simulator support for Touch Bar (2nd generation)
  • Additional bug fixes and stability improvements

New in Xcode 11.3 Build 11C24b Beta (Dec 2, 2019)

  • Overview:
  • Xcode 11.3 includes SDKs for iOS 13.2, macOS Catalina 10.15, watchOS 6.1, and tvOS 13.2. Xcode 11.3 supports on-device debugging for iOS 8 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 11.3 requires a Mac running macOS Mojave 10.14.4 or later.
  • General:
  • New Features:
  • You can configure the Touch Bar simulator to simulate either 1st generation or 2nd generation Touch Bars. (53885368)
  • Known Issues:
  • When you create an Objective-C category file by choosing File > New > File…, the newly created file includes an import of the AppKit framework. This causes a compilation error for iOS, tvOS, and watchOS. (55977950) (FB7346800)
  • Workaround: Remove the import of AppKit from the source file.
  • Create ML:
  • New Features:
  • A Recommender template is available in Create ML, joining the Image, Sound, Activity, Text and Tabular Classification, Object Detection, Word Tagging and Tabular Regression templates. (56912822)
  • Interface Builder:
  • Resolved Issues:
  • Setting the Selected Segment Tint Color of a segmented control in Interface Builder to a named color doesn’t cause a failure when the view loads on iOS 12 and earlier. (55254963, 55951374)
  • Previews:
  • New Features:
  • Xcode Previews now use a platform-provided scroll view for the canvas content when running on macOS Catalina 10.15.2 or newer. This change makes it possible to scroll through the canvas using a scroll wheel on a mouse, as well as by dragging horizontal and vertical scrollbars. (53962570)
  • Simulator:
  • Known Issues:
  • Third party “endpoint security” software may cause slow simulators, system freezes, or prevent debug processes from running in simulators reliably. This sometimes manifests as debugserver disconnections, or sends simulator applications a SIGKILL signal. (55853555)
  • Workaround: Uninstall the third party software.
  • Under certain network conditions, GateKeeper may block simulators from booting, and show error code 60 “launchd failed to respond.” (55878667)
  • Workaround: Try to boot the simulator again. Disabling WiFi or disconnecting from any active VPNs may resolve the problem.
  • When a new Mac Pro has multiple GPUs, Simulator assigns each booted simulator to one of the available GPUs. (56488185)
  • Swift Packages:
  • Known Issues:
  • If an iOS, tvOS, or watchOS app uses a Swift Package that builds a dynamic library, you can’t submit it to the App Store. (55564324) (FB7303066)
  • Workaround: Modify the Package manifest to build a static library.

New in Xcode 11.2.1 Build 11B500 (Nov 13, 2019)

  • Xcode 11.2.1 includes Swift 5.1 and SDKs for iOS 13.2, iPadOS 13.2, tvOS 13.2, watchOS 6.1, and macOS Catalina 10.15.1

New in Xcode 11.2 Build 11B52 (Nov 1, 2019)

  • Xcode 11.2 includes Swift 5.1 and SDKs for iOS 13.2, iPadOS 13.2, tvOS 13.2, watchOS 6.1, and macOS Catalina 10.15.1

New in Xcode 11.1 Build 11A1027 (Oct 8, 2019)

  • Xcode 11.1 includes Swift 5.1 and SDKs for iOS 13.1, iPadOS 13.1, tvOS 13, watchOS 6, and macOS Catalina 10.15

New in Xcode 11 Build 11A420a (Sep 23, 2019)

  • SwiftUI:
  • SwiftUI framework and design tools work together to enable a new way to build user intefaces
  • Declarative syntax defines your user interface using easy-to-read Swift code
  • Design tools make it as easy as drag-and-drop to construct and edit your views
  • Code you write is always in sync with the design and preview canvas
  • Library of controls and modifiers make it easy to build complex interfaces
  • Animations are built using simple commands that describe the action you want to see
  • Preview your real app running on multiple device types, orientations, and font sizes
  • Share common code across all Apple platforms, and add custom experiences for each OS
  • NOTE: SwiftUI requires iOS 13, watchOS 6, tvOS 13, or macOS Catalina. To use the SwiftUI design canvas Xcode 11 must be running on macOS Catalina, coming this Fall.
  • Mac Catalyst brings iPad apps to the Mac
  • Click a single checkbox in your iPad project to add a native Mac app
  • One project and set of source code creates iPhone, iPad, and Mac versions of your app
  • Customize elements of your app for an experience unique to Mac
  • Add new SwiftUI code to your project along side existing UIKit code
  • Submit to the Mac App Store or notarize for outside distribution
  • Swift and Swift Packages
  • Swift packages are supported throughout, including build, debug, and SCM workflows
  • Use Swift packages from GitHub, Bitbucket, GitLab, or your own hosts
  • Download packages automatically based on dependency analysis
  • Create your own packages to share code among all your 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
  • Editor minimap gives a bird’s eye view of your code so you can quickly jump to any line
  • Each editor view has its own preview, assistant, or other complementary views
  • Split any editor pane to layout your workspace exactly as you want
  • Other improvements
  • Build stand-alone watchOS apps with a faster debugging experience
  • Simulator launches quickly 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
  • Simulate device conditions such as a slow network or thermal warnings while debugging
  • Metrics tab in the Organizer shows how efficiently your app runs on customer devices

New in Xcode 10.3 Build 10G8 (Jul 29, 2019)

  • Xcode 10.3 includes SDKs for iOS 12.4, tvOS 12.4, watchOS 5.3, and macOS Mojave 10.14.6

New in Xcode 10.2.1 Build 10E1001 (Apr 18, 2019)

  • Xcode 10.2.1 fixes a build time issue in large Swift projects, and includes additional bug fixes

New in Xcode 10.2 Build 10E125 (Mar 26, 2019)

  • 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:
  • 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
  • Additional bug fixes

New in Xcode 10.2 Build 10P82s Beta (Jan 25, 2019)

  • Overview:
  • Xcode 10.2 beta includes SDKs for iOS 12.2, watchOS 5.2, macOS 10.14.4, and tvOS 12.2. Xcode 10.2 supports on-device debugging for iOS 8 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 10.2 requires a Mac running macOS 10.14 or later.
  • General
  • New Features:
  • Xcode now supports downloading using macOS content caching. For information about macOS content caching, see About content caching on Mac. (12926899)
  • Apple Clang Compiler:
  • New Features:
  • -Watomic-implicit-seq-cst is a new warning, off by default, that warns when C _Atomic or __sync_* are used with the implicit, sequentially-consistent ordering. Most codebases use sequential consistency by default, but some demand that developers use explicit ordering everywhere. This warning is for the latter group. (28172966)
  • A new diagnostic identifies framework headers that use quote includes instead of framework style includes. The warning is off by default but you can enable it by passing -Wquoted-include-in-framework-header to clang. (37077034)
  • -Wmemset-transposed-args is a new warning that diagnoses calls to memset that have the second and third arguments transposed. For example, the following call is diagnosed with the new warning: memset(buf, sizeof(buf), 0). (42360478)
  • The constructors for std::pair are now marked noexcept conditionally on whether the corresponding constructors of its members are noexcept. This is a conforming extension that has potential performance benefits in case an operation can be made faster for types that don’t throw exceptions on construction. (29537079)
  • The warning for using a non-const callable predicate in a std::map or a std::set now shows the point of instantiation of the faulty container instead of an unrelated implementation detail. (41370747)
  • The and headers are deprecated in favor of their C++17 counterparts: and . They will be removed in a future release of Xcode, and you shouldn’t rely on their presence. (46903112)
  • The usage of inlining macros to control the visibility of symbols in libc++ headers has been removed in favor of a better solution. This should result in code size and performance improvements in code that includes libc++ headers, and a dramatic improvement of the debugging experience when using libc++. (47259325)
  • Public headers in a framework might mistakenly #import or #include private headers, which causes layering violations and potential module cycles. There’s a new diagnostic that reports such violations. It’s OFF by default in clang and is controlled by the -Wframework-include-private-from-public flag. (38712182)
  • The use of @import in framework headers prevent headers being used without modules. A new diagnostic detects the use of @import in framework headers when you pass the -fmodules flag. The diagnostic is OFF by default in clang and is controlled using the -Watimport-in-framework-header flag. (39192894)
  • Previously, omitting the framework keyword when declaring a module for a framework didn’t affect compilation but silently did the wrong thing. A new diagnostic, -Wincomplete-framework-module-declaration, and a new fix-it suggests adding the appropriate keyword. This warning is on by default when you pass the -fmodules flag to clang. (39193062)
  • Known Issues:
  • Fixed a data race condition that occurred when checking whether a future has been attached to a promise in std::async. The issue was resolved for std::async returning a non-void future, however the issue remains for calls that return std::future. (42548261)
  • Linking may fail due to an invalid temporary directory if Incremental LTO is enabled using -flto=thin when you invoke clang from the command line to compile and link in a single invocation. (47297739)
  • Workaround: Break the invocation into separate commands to compile and link separately. Alternatively, explicitly pass a temporary directory to the linker using -Wl,- object_path_lto,/path/to/dir.
  • Resolved Issues:
  • Inverted character classes in std::regex, such as [S], are now handled correctly. (43060054)
  • dsymutil no longer exhausts system memory on large projects. (41422573)
  • Asset Catalog:
  • Resolved Issues:
  • Resolved an issue that affected app compatibility with iOS 9.0, 9.1, and 9.2 when distributing an app for local or enterprise distribution. App asset catalogs built using Xcode 10 with a deployment target of iOS 9.0, 9.1 or 9.2 produced content incompatible with the runtimes of those iOS versions when distributed using local or enterprise distribution. Rebuilding the app with Xcode 10.2 resolves this issue. (46893768, 44535967)
  • Image slicing mode is improved in Dark Mode. (39388416)
  • Build System:
  • New Features:
  • Implicit Dependencies now supports finding dependencies in Other Linker Flags for linked frameworks and libraries specified with -framework, -weak_framework, -reexport_framework, -lazy_framework, -weak-l, -reexport-l, -lazy-l, and -l. (7879587)
  • Resolved Issues:
  • A recursive inclusion cycle in .xcconfig files no longer crashes the build system. (42023748)
  • Per-file flags defined for Core Data model files in a target build phase are now passed to the Core Data compiler. (42919919)
  • Clang Static Analyzer:
  • Resolved Issues:
  • The static analyzer now warns when a C++ object is used after its contents are moved unless the object is reset to a known state before it’s used. (41349073)
  • The static analyzer now checks for violations of IOKit and libkern reference counting rules. These violations can lead to leaks and use-after-free issues. (46359592)
  • Debugging:
  • New Features:
  • UIStackView properties are now presented in the view debugger object inspector. (36351873)
  • Xcode can now automatically capture a memory graph if a memory resource exception is encountered while debugging. You can enable memory graph captures in the 
Diagnostics tab of the scheme’s run settings. (45285932)
  • On iOS and watchOS, Xcode shows the memory limit for running apps in the Memory Report as you approach the limit. Use Instruments and Xcode Memory Debugging to optimize your app to have the smallest possible memory footprint. (40556954)
  • The view debugger presents a more compact 3D layout. (43523921)
  • Resolved Issues:
  • The speed of showing disassembly in the Assistant Editor is improved. (31633031)
  • Instruments:
  • Known Issues:
  • Instruments may crash when you profile Swift code in a watchOS app. (47368181)
  • Interface Builder:
  • New Features:
  • Double-clicking in a storyboard no longer zooms. Instead, zoom using a pinch gesture on the trackpad or hold Option and scroll. (29139870)
  • Interface Builder for Apple TV supports user interface elements exposed by the TVUIKit framework. (35868606)
  • Resolved Issues:
  • Actions in Swift files are now correctly parsed by Interface Builder when annotated with @objc @IBAction. (25465675)
  • Images with an alignment rectangle specified in the asset catalog correctly render in the Interface Builder canvas. (46595020)
  • Improved the intrinsic size of images in 2x and 3x slots in the Interface Builder canvas if the file name inside the asset catalog doesn’t end in @2x or @3x. (44759471)
  • Changes to NSImageView made using the inspector are now reliably reflected in the canvas without a delay. (30196881)
  • ibtool --export-string-file includes localizer hints that are specified on controls with instances of NSCell. (24421623)
  • Resolved an issue that caused images to display as question marks in storyboards. (42475635)
  • Images rendered in the Interface Builder canvas render with the scale factor matching the chosen device. (18703159)
  • Images marked with the template rendering mode in the asset catalog correctly render in the Interface Builder canvas. (29049562)
  • LLDB Debugger:
  • New Features:
  • You can now use $0, $1, … shorthands in LLDB expression evaluation inside closures. (20719448)
  • C variable length arrays are now supported in LLDB. (39606394)
  • The LLDB debugger has a new command alias, v, for the “frame variable” command to print variables in the current stack frame. Because it bypasses the expression evaluator, v can be a lot faster and should be preferred over p or po. (40066460)
  • Known Issues:
  • Using po in Swift while debugging a watchOS app might return incorrect results. (47162433)
  • Workaround: Inspect the variable using the p command.
  • The debugger can’t resolve the type of generic variables that are bound to private types. (38231646)
  • Resolved Issues:
  • Generic variables in inlined generic contexts are now correctly supported by the debugger. (28859432)
  • Data formatters for Swift dictionaries and sets are more reliable. (43045289)
  • Localization:
  • New Features:
  • Opening a project that uses any deprecated localization identifiers now produces a warning for each one used. Selecting one of these warnings presents an assistant for migrating files in the associated legacy “lproj” directories to “lproj” directories named for the equivalent modern identifier. If necessary, this process also updates the project’s development region to a modern identifier. Migrated projects are compatible with older versions of Xcode. (9777671)
  • You can now export and import localizations for a project’s development region. (41878212)
  • Resolved Issues:
  • Xcode now more carefully distinguishes between legacy localization identifiers such as “English” and modern localization identifiers such as “en” and represents them both in both project files and the user interface. (45469882)
  • Enabling Base Internationalization is recommended for all projects, and any projects that don’t currently use Base Internationalization are offered an upgrade even if they only have a single localization. The upgraded projects are backward-compatible with previous releases of Xcode. (15160454)
  • You can now add localizations to a project that doesn’t have any localizable files, and you aren’t prompted for files to copy to the new localization. (42771349)
  • Playgrounds:
  • Known Issues:
  • Playgrounds might not execute. (47226381)
  • Project Editor:
  • Known Issues:
  • Expanding a Shell Script Build Phase might crash Xcode. (47130826)
  • Workaround: Edit the Shell Script Build Phase in Xcode 10.1.
  • Signing and Distribution:
  • Resolved Issues:
  • When you’re building an archive of a macOS app and using a Developer ID signing certificate, Xcode includes a secure timestamp in the archive’s signature. As a result, you can now submit an archived app to Apple’s notary service with xcrun altool without first needing to re-sign it with a timestamp. (44952627)
  • When you’re building an archive of a macOS app, Xcode no longer injects the com.apple.security.get-task-allow entitlement into the app’s signature. As a result, you can now submit an archived app to Apple’s notary service using xcrun altool without first needing to strip this entitlement. (44952574)
  • Fixed an issue that caused the distribution workflow to report inaccurate or missing information about the signing certificate, provisioning profile, and entitlements used when exporting or uploading an app. (45761196)
  • Fixed an issue where thinned .ipa files weren’t being signed when exported from the Organizer. (45761101)
  • Simulator:
  • Known Issues:
  • Siri doesn’t work in watchOS and iOS simulators. (46681836)
  • Resolved Issues:
  • Pasteboard synchronization between macOS and simulated iOS devices is more reliable. (46817121)
  • You’re now only prompted once to authorize microphone access to all simulator devices. (45715977)
  • Performance and responsiveness when interacting with simulated iPhone XR devices has been improved. (44657262)
  • Swift:
  • See Swift 5 Release Notes for Xcode 10.2 beta.
  • Testing:
  • New Features:
  • xccov supports merging multiple coverage reports—and their associated archives—together into an aggregate report and archive. When merging reports together, the aggregate report may be inaccurate for source files that changed in between the time that the original reports were generated. If there were no source changes, the aggregate report and archive will be accurate. For more information, see the xccov manual page. (38050969)
  • xccov now supports diffing Xcode coverage reports, which can be used to calculate coverage changes over time. For example, to diff the coverage reports before.xccovreport and after.xccovreport, invoke xccov as follows: xccov diff --json before.xccovreport after.xccovreport. For more information about the format of the diff, see the xccov manual page. (43439165)
  • Static library and framework targets now appear in the coverage report as top-level entries, with line coverage values that are aggregated across all targets that include the static library or framework. This also resolves an issue where the source files for a static library or framework target would be included in the coverage report even if the target itself was excluded from code coverage in the scheme. (22578123)
  • Known Issues:
  • Recording doesn’t work from Clones when Parallelization is on. (43699252)
  • The wrong test host application is chosen for a test target when there are multiple test host targets with the same PRODUCT_NAME. (46475115)
  • Profiling tests don’t behave correctly when test parallelization is enabled. (44836817)
  • Workaround: Disable parallel testing while profiling by navigating to Product > Scheme > Edit Scheme > Test > Info, selecting Options next to your test target, and disabling “Execute in parallel”.
  • Resolved Issues:
  • XCUIScreen now properly implements isEqual: and hash. (32179407)
  • When clicking the source editor gem for a test method or class that’s present in more than one test target, or for a test method that’s inherited by 
subclasses, Xcode now shows a menu that allows choosing an individual target or class (or all) to run the selected tests in. (45975871)
  • Resolved an issue that could prevent expanding a file in the coverage report view. (44458167)
  • If a test bundle can’t be loaded during testing for some reason—such as a runtime linking failure—Xcode now reports a descriptive error message that describes the cause of the failure. This failure is present in the test activity log and appears in stdout if you’re using xcodebuild. The error is also present in the structured logs contained in the result bundle. (45242409)
  • If testing fails due to the test runner crashing on launch, Xcode attempts to generate a rich error message that describes the failure. This failure is present in the test activity log and appears in stdout if you’re using xcodebuild. The error is also present in the structured logs contained in the result bundle. (29148418)
  • If xcodebuild is terminated by a SIGINT signal while tests are running, a valid result bundle is written to disk and contains the results from the tests that completed before the termination. Similarly, if you cancel running tests in Xcode, a valid result bundle is generated that contains the results of the already-completed tests. (45022325)
  • Second instances of xcodebuild or Xcode don’t delete simulator clones created during parallel distributed testing. (40738122)
  • Test targets that don’t specify a test host app and use the xctest command line tool to run tests now honor customized language and region settings in a scheme’s Test action. (43139603)
  • Resolved an issue that could cause incorrect code coverage for a file included in multiple targets. (40409346)
  • Crash reports collected during testing no longer omit important fields such as the termination reason and description. (44405884)
  • Headers that aren’t explicitly included in a target’s Headers Build Phase no longer appear in the target’s entry in the coverage report. This resolves an issue where unwanted headers could appear in the coverage report for a target—such as from a linked framework or library. If you notice that a coverage report is missing headers, make sure they’re included in the corresponding target’s Headers Build Phase. (36187447)
  • Projects with multiple test targets that each contain a test class that inherits from a shared XCTestCase subclass no longer show nonexistent runtime (“rT”) tests for test methods from other targets. (46042417)

New in Xcode 10.1 Build 10O35n Beta 2 (Oct 3, 2018)

  • General:
  • New Features:
  • Support for arm64e (Preview)
  • To try the developer preview of arm64e, select your iOS app target in the Project Editor, find its Architectures build setting, select the Other… option, and add arm64e to the list of architectures.
  • The App Store and TestFlight don't accept submissions containing arm64e. Xcode will remove arm64e content from your app when you distribute from the Organizer window. (42296212)
  • Resolved Issues:
  • The navigation UI for Navigate > Open in… no longer displays individual tabs in a window as separate windows with one tab each. (31716375)
  • The xed tool now uses the Xcode currently specified by xcode-select or the DEVELOPER_DIR environment variable. (7711481)
  • Apple Clang Compiler:
  • Resolved Issues:
  • Changes to libunwind in iOS 12.1 beta 2 resolved an issue with a small number of apps running on iPhone XS and iPhone XS Max. (44361223)
  • Asset Catalog:
  • Resolved Issues:
  • The 40mm and 44mm wells for complications specify the correct icon sizes. (43069075, 43401397)
  • Resolves an issue that affected app compatibility with iOS 9.0, 9.1 and 9.2. Apps containing asset catalogs built with Xcode 10 whose deployment target was set to iOS 9.0, 9.1 or 9.2 would produce content incompatible with the runtimes of those iOS versions. Rebuilding the application with Xcode 10.1 resolves this issue. (44535967)
  • Build System:
  • Resolved Issues:
  • The new build system supports On Demand Resources (ODR). (31508570)
  • Fixed an issue where individual localized .xib files or storyboards associated with the base file wouldn't be compiled into the product when using base localization for a .xib file or storyboard. (44437269)
  • Debugging:
  • New Features:
  • The Breakpoint editor for Exception breakpoints now has an “ignore count” field. (21547530)
  • Devices:
  • Known Issues:
  • Devices running iOS 12 or later might fail to take screenshots requested from Xcode's Devices window. (42873539)
  • Workaround: Take the screenshot on the device.
  • Interface Builder:
  • New Features:
  • Control-dragging in the canvas to add constraints now always includes all four directions, not just the ones closest to the direction of the drag. (43618031)
  • Resolved Issues:
  • Fixed an issue with Auto Layout incorrectly reporting issues when constraining views to UIScrollView subviews. (44457610)
  • Improved canvas performance when switching between iPhone XS, iPhone XS Max, and iPhone XR with the device bar. (44605631)
  • Fixed an issue that caused the layout of watch content in the Preview assistant editor to not match the Device Bar selection. (42563683)
  • @IBDesignable views now build using the new build system when it’s enabled (31433718)
  • Swift Compiler:
  • Resolved Issues:
  • Playgrounds in Xcode no longer log messages about fields whose types fail to demangle at runtime. (44642942)
  • Compilation now consistently reports the errors responsible for any failures. For example, previously, a message like “Command CompileSwiftSources failed with a nonzero exit code” could occur without an accompanying failure reason. (43033749, 44362180)
  • Long file paths containing white space no longer cause build failures. (44142091)
  • The Bundle class's init(for:) initializer now works consistently with Swift classes, including when not running on the latest operating system versions. (44489216)
  • A let property of a generic class that has function type as an argument can now be passed successfully to another function or method. (41056468)
  • Changes made to a captured value in a nested context is now reflected in the outer context. (SR–8398) (42742744)
  • A mutating method that returns Self on a value of protocol type can now successfully be invoked (43507711)
  • The compiler can now successfully form an array of heterogeneous class objects as an AnyObject array (42666956)
  • Swift Standard Library:
  • Resolved Issues:
  • The FixedWidthInteger protocol's unsafeAdding(_:), unsafeSubtracting(_:), unsafeDivided(by:), and unsafeMultiplied(by:) methods are now deprecated and will be removed in a future release.
  • These methods produce undefined behavior in overflow conditions. In the case of arithmetic operations, use a combination of an assert and either the addingReportingOverflow(_:) method or the &+ operator, both of which have well-defined results in cases of overflow. (43688685)
  • Source Control:
  • Resolved Issues:
  • Organizational repositories now show up alongside personal repositories when cloning from GitLab.com or GitLab self-hosted accounts.
  • Testing:
  • Known Issues:
  • UI tests in projects using the legacy build system won't run on iPhone XS and iPhone XS Max. (44777186)
  • Workaround: Use the new build system.
  • Profiling tests does not behave correctly when test parallelization is enabled. (44836817)
  • Workaround: Disable parallel testing while profiling by navigating to Product > Scheme > Edit Scheme… > Test > Info. Select the Options button next to your test target, and disable the "Execute in parallel" checkbox.
  • Resolved Issues:
  • Xcode 10.1 beta 2 supports UI testing with devices running beta versions of iOS 12. (43796360)
  • Fixed an issue where the testBundleDidFinish(_:) method wouldn't be called on an observer added to the shared XCTestObservationCenter instance if the observer was added at any point after testing had already started. (For example, after the testBundleWillStart(_:) method had been called on all the currently registered observers). (44340337)
  • The XCUIElement class's click() and hover() methods now automatically scroll menus when the receiver is a menu item or subview of a menu item. (43510448)

New in Xcode 10.1 Build 10O23u Beta (Sep 19, 2018)

  • Overview:
  • Xcode 10.1 beta includes SDKs for iOS 12.1, watchOS 5.1, macOS 10.14, and tvOS 12.1. Xcode 10.1 beta supports on-device debugging for iOS 8 and later, tvOS 9 and later, and watchOS 2 and later. Xcode 10.1 beta requires a Mac running macOS 10.13.6 or later.
  • General
  • Resolved Issues:
  • The xed tool now uses the Xcode currently specified by xcode-select or the DEVELOPER_DIR environment variable. (7711481)
  • Debugging:
  • New Features:
  • The Breakpoint editor for Exception breakpoints now has an “ignore count” field. (21547530)
  • Interface Builder:
  • New Features:
  • Control-dragging in the canvas to add constraints now always includes all four directions, not just the ones closest to the direction of the drag. (43618031)
  • Resolved Issues:
  • @IBDesignable views now build using the new build system when it’s enabled. (31433718)
  • Swift Compiler:
  • A let property of a generic class that has function type as an argument can now be passed successfully to another function or method. (41056468)
  • Changes made to a captured value in a nested context is now reflected in the outer context. (SR–8398) (42742744)
  • A mutating method that returns Self on a value of protocol type can now successfully be invoked (43507711)
  • The compiler can now successfully form an array of heterogeneous class objects as an AnyObject array (42666956)
  • Source Control:
  • Organizational repositories now show up alongside personal repositories when cloning from GitLab.com or GitLab self-hosted accounts.

New in Xcode 10.0 Build 10A255 (Sep 18, 2018)

  • Dark mode in macOS Mojave:
  • All-new dark appearance throughout Xcode and Instruments
  • Asset catalogs add dark and light variants to customize colors and image assets
  • Interface Builder easily switches between dark and light variants of the app's interface
  • Debugger switches Mac apps between dark and light variants without changing OS settings
  • Source control:
  • Code that differs from the repository server is highlighted directly within the editor, including:
  • Local changes not yet pushed to the shared repository
  • Upstream changes others have made
  • Conflicts to address before committing
  • Account integration with self-hosted and cloud servers from Atlassian Bitbucket, GitLab, and GitHub
  • Account logins generate SSH keys on-demand and upload to the service provider
  • Rebase is an option when pulling the latest version of code
  • Editor enhancements:
  • Multiple cursors in the editor enable many changes at once
  • Code folding ribbon can hide any code block surrounded by braces
  • Over-scroll makes it easy to display the last lines of code in the center of the screen
  • Playgrounds and machine learning:
  • Completely redesigned REPL-like playgrounds are much faster and more stable
  • Run code at any time by hitting SHIFT-RETURN or click the inline Run button to execute to a specific line
  • Interactively train and exercise new Create ML models directly within a playground
  • Test and debug:
  • Debug symbols download from a device 5x faster than before
  • Tests run in parallel across many Simulators to take full advantage of all CPU cores
  • Custom instruments provide unique data visualization for any code
  • Memory debugger layout is redesigned to make it easier to navigate and visualize the whole app
  • Metal shader debugger inspects the execution of vertex, fragment, compute, and tile shader code
  • Metal dependency viewer shows a detailed graph of how resources are used
  • Build Performance:
  • New build system improves performance and is enabled by default for all projects
  • Swift compiles each individual file significantly faster, and greatly improves incremental builds

New in Xcode 9.4.1 Build 9F2000 (Jun 13, 2018)

  • Xcode 9.4.1 includes Swift 4.1 and SDKs for iOS 11.4, watchOS 4.3, tvOS 11.4, and macOS High Sierra 10.13.4
  • Fixes a security issue in the included Git support and command-line tool

New in Xcode 9.4 Build 9Q1019a (May 29, 2018)

  • Xcode 9.4 includes Swift 4.1 and SDKs for iOS 11.4, watchOS 4.3, tvOS 11.4, and macOS High Sierra 10.13.4:
  • Adds support for the ClassKit framework in iOS 11.4
  • Additional bug fixes and stability improvements

New in Xcode 9.3.1 Build 9E501 (May 11, 2018)

  • Xcode 9.3.1 includes Swift 4.1 and SDKs for iOS 11.3, watchOS 4.3, tvOS 11.3, and macOS High Sierra 10.13.4
  • Fixes an issue that caused Xcode to slow down when editing a playground.
  • Fixes an issue that could require the user to re-enter their Apple ID.

New in Xcode 9.3 Build 9E145 (Mar 29, 2018)

  • 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
  • Additional bug fixes and stability improvements

New in Xcode 9.2 Build 9C40b (Dec 5, 2017)

  • Xcode 9 includes Swift 4and SDKs for iOS 11.2, watchOS 4.2, macOS 10.13.2, and tvOS 11.2.
  • GENERAL:
  • Resolved Issues:
  • NSFileProviderExtension now works on iOS 9 and iOS 10 when the minimum supported OS version of the project is iOS 8.0 or earlier. (34828118)
  • A workspace containing many cross-project references no longer experiences significant user interface lag shortly after opening. (14558737)
  • APPLE LLVM COMPILER:
  • Resolved Issues:
  • Xcode now correctly compiles code that contains a std::function variable with an incomplete return type. (34010071)
  • When _POSIX_C_SOURCE is defined, including libc++ headers that depend on __threading_support, such as thread or mutex no longer results in an error. (31263056)
  • BUILD SYSTEM:
  • New Features:
  • An experimental opt-in feature increases the number of concurrent build tasks that are run for Swift projects. This may improve build times for Swift projects, but may also increase memory use during the build. (35326759)
  • To enable this feature, open the Terminal and enter the following command:
  • defaults write com.apple.dt.Xcode BuildSystemScheduleInherentlyParallelCommandsExclusively -bool YES
  • To disable the feature, delete the preference by entering the command:
  • defaults delete com.apple.dt.Xcode BuildSystemScheduleInherentlyParallelCommandsExclusively
  • Resolved Issues:
  • The build system no longer produces inconsistent header maps while indexing. This resolves an issue with debugging Swift code using lldb. (34716477)
  • CORE DATA:
  • Resolved Issues:
  • The generated Objective-C @property declaration for a UUID attribute now always includes the nullable and copy annotations. (35273724)
  • Core ML:
  • New Features:
  • Added support for the .mlmodel specification version 2 which includes float16 weights and custom layers in neural network models.
  • Updated the Model viewer to show custom layer dependencies.
  • INTERFACE BUILDER:
  • New Features:
  • Specifying a section inset reference point for a UICollectionView, such as relative to the Safe Area, is now supported in the Size inspector. (34812768)
  • Resolved Issues:
  • Fixed a performance issue that resulted in frequent rebuilds when editing an IBDesignable view. (28360728)
  • Resolved a canvas rendering issue that sometimes occurred when switching the device configuration to iPhone X. (34424852)
  • Localization warnings are no longer reported for a UISegmentedControl containing only images and no text. (34601808)
  • Resolved a layout ambiguity with image-based UIToolbar buttons that resulted in a hang and in high CPU usage. (34057302)
  • Localization warnings are no longer reported for a UILabel with numberOfLines set to 0, or for any single-character text strings. (34767956)
  • Resolved a canvas responsiveness issue when rendering a Storyboard containing a UITextField. (34808049)
  • A layer-backed IBDesignable view is no longer draw upside-down on the IB canvas. (34758240)
  • Resolved a crash that occured when trying to change the font for a localization comment in the Identity inspector for iOS, tvOS, and watchOS documents. (26097921)
  • Device Bar labels are more concise when displayed as popup buttons. In addition, VoiceOver navigation is improved for groups around related mutually-exclusive buttons. (27480768)
  • Known Issues:
  • When the device configuration is set to an iPhone X, the height of the UIToolbar shown on the canvas may be too large. The iOS runtime is not affected.
  • Workaround: Use a different device for editing on the canvas, or connect the scene to a navigation controller that contains a toolbar.
  • PLAYGROUNDS:
  • Resolved Issues:
  • Xcode no longer crashes when navigating between pages in a playground. (34821667)
  • The Render Documentation checkbox now behaves correctly. (34627634)
  • SIMULATOR:
  • Resolved Issues:
  • In Simulator, apps with the audio background capability now continue playing audio when switched to the background. (34591587)
  • A watchOS app using Swift now runs on a simulated watchOS 2 device. (35063043)
  • iCloud Drive now syncs on a simulated device running iOS 11.2 or later. (34669593)
  • Swiping up to unlock a simulated iPhone X now works correclty. (33390776)
  • Known Issues:
  • When both Xcode 9.0 and 9.1 are installed, Simulator in Xcode 9.1 may not show devices for iOS 11.0, tvOS 11.0, or watchOS 4.0 in the Hardware > Device menu. (34761843)
  • Workaround: Use Xcode 9.0 to build and run the app in Simulator on the desired device.
  • Use of some 3rd party firewall tools that install kexts may cause problems launching apps in Simulator. (34829500)
  • Workaround: Unload the problematic kexts using the kextunload command in the terminal. Disabling rules in the firewall application may not solve the problem.
  • SWIFT COMPILER:
  • Resolved Issues:
  • UTF–16 string indices now increment correctly when there is a limiting index resulting in expressions such as Range(NSRange(location: 1, length: 0), in: "") returning nil instead of crashing. (34551055)
  • SWIFT MIGRATION:
  • Resolved Issues:
  • Opening the Swift Migration Assistant when a workspace or project contains a Swift Playground no longer crashes. (35175054)
  • SWIFT SDK:
  • Resolved Issues:
  • MTKMesh.newMeshes(asset:device:) now populates the MDLMesh array in the return value correctly. (34624659)
  • SWIFT STANDARD LIBRARY:
  • Resolved Issues:
  • Fixed a bug that resulted in some uses of key path literals with optional chaining (?) components that either crash with the error message "pointer with negative count", or in memory corruption at runtime. (35367114)
  • TESTING:
  • Resolved Issues:
  • The XCUIElementType enumeration is now imported into Swift 4 as XCUIElement.ElementType, allowing the type name to be referenced in code. (34772051)

New in Xcode 9.1 Build 9B55 (Nov 1, 2017)

  • 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
  • Additional bug fixes and stability improvements

New in Xcode 9.0.1 Build 9A1004 (Oct 16, 2017)

  • Simulator improvements for iPhone X
  • Fixes a problem where the Test Navigator could become out of sync with available tests
  • Additional bug fixes and stability improvements

New in Xcode 9.0 Build 9A235 (Sep 19, 2017)

  • 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

New in Xcode 8.3.3 Build 8E3004b (Jun 6, 2017)

  • Includes Swift 3.1 and SDKs for iOS 10.3, watchOS 3.2, tvOS 10.2, and macOS Sierra 10.12
  • Adds Interface Builder support for iPad Pro (10.5-inch)

New in Xcode 8.3.2 Build 8E2002 (Apr 19, 2017)

  • Xcode 8.3.2 includes Swift 3.1 and SDKs for iOS 10.3, watchOS 3.2, tvOS 10.2, and macOS Sierra 10.12.
  • Xcode 8.3.2 improves performance and fixes several critical bugs, including:
  • Swift projects using whole-module optimization now build faster on multi-core Macs
  • Swift migrator now applies all applicable Fix-it conversions
  • Fixed an issue that could prevent iOS playgrounds from supporting interactivity on non-Retina displays
  • Fixed a compile failure when building valid C++ code involving a nested struct, enum, or lambda
  • Fixed an issue where the debug console would not show output until a new line was printed
  • Additional bug fixes and stability improvements

New in Xcode 8.3.1 Build 8E1000a (Apr 6, 2017)

  • Xcode 8.3.1 includes Swift 3.1 and SDKs for iOS 10.3, watchOS 3.2, tvOS 10.2, and macOS Sierra 10.12.
  • Xcode 8.3.1 fixes an issue that could produce app archives that were larger than necessary.

New in Xcode 8.2.1 Build 8C1002 (Dec 20, 2016)

  • Fixes an issues where incorrect Swift version warnings were displayed.

New in Xcode 8.2 Build 8C38 (Dec 12, 2016)

  • Xcode 8.2 includes Swift 3, and SDKs for iOS 10.2, watchOS 3.1, tvOS 10.1, and macOS Sierra 10.12.2.
  • Touch Bar gains new actions and can be customized
  • Simulator installs an app by drag-and-drop onto the Simulator window
  • Additional bug fixes and stability improvements

New in Xcode 8.1 Build 8B62 (Oct 27, 2016)

  • 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
  • Debug button in the Control Strip lets you pause and inspect your app while Xcode is in the background
  • Interface Builder button updates the frames of selected objects and their children
  • Classes in Interface Builder make it easy to add Touch Bar features to your Mac apps
  • Touch Bar simulator works on any Mac so you can see how your app works with the Touch Bar

New in Xcode 8.0 Build 8A218a (Sep 13, 2016)

  • Xcode 8 includes Swift 3, and SDKs for iOS 10, watchOS 3, tvOS 10, and macOS Sierra.
  • New in Xcode 8:
  • Editor generates docs, highlights current line, supports color and image literals in .swift files, and completes image names
  • App extensions enable third parties to add new capabilities to the source editor
  • Code signing can be managed automatically or using custom settings
  • Runtime issues show alerts to identify leaks, UI alignment problems, or race conditions using the thread sanitizer
  • Memory debugger visualizes and navigates the map of relationships among your data and objects at runtime
  • Interface Builder gives you pixel-perfect control and preview for each target device, and can edit at all zoom levels
  • San Francisco Mono default coding font and new dark Civic theme
  • Documentation viewer searches a unified reference library using fuzzy matching, available even when offline
  • Accessibility improvements within Interface Builder and throughout the IDE
  • Build Siri extensions, iMessage apps, and sticker packs for Messages in iOS 10
  • New in Swift 3:
  • Swift-enhanced API for Grand Central Dispatch and Core Graphics
  • Uniform API style across all of Swift 3, including frameworks in the platform SDKs
  • Playgrounds support for open source toolchains from Swift.org
  • Xcode migrators help move your existing Swift code to Swift 3
  • Swift 2.3 aids the transition to Swift 3 while providing access to the latest SDKs

New in Xcode 8 Build 8S201h Beta 6 (Aug 16, 2016)

  • General :
  • Quick Help popovers and the Quick Help inspector find user-defined symbols with source code documentation in C or Objective-C. (26470813)
  • Simulator:
  • Simulator help is available from Simulator.app (27365823)
  • Core Data:
  • Swift code generation from Core Data data models that contain an ordered relationship once again generate the NSOrderedSet type. (27689124)

New in Xcode 7.3.1 Build 7D1014 (May 3, 2016)

  • Xcode 7.3.1 includes Swift 2.2 and SDKs for iOS 9.3, watchOS 2.2, tvOS 9.2, and OS X 10.11 El Capitan.
  • Xcode 7.3.1 fixes several critical bugs, including:
  • Git updated to version 2.7.4 to improve security
  • Fixed an issue where turning off a capability in the Xcode editor could leave the entitlement enabled in the app bundle
  • Fixed an issue that could prevent the export of an ad-hoc build from an archive
  • Fixed a crash when importing localizations

New in Xcode 7.3.1 Build 7D1012 GM (Apr 20, 2016)

  • Build System:
  • The Enable Clang Module Debugging build setting has been removed in this release, fixing issues that could cause Xcode to crash or show incomplete information in the variables view. (25535528)
  • Note: Enable Clang Module Debugging had been enabled by default. If you had previously disabled it, it now appears as a user-defined build setting named CLANG_ENABLE_MODULE_DEBUGGING, which can be removed.
  • Fixed a bug where a Swift command-line tool target in which -ObjC is passed to the linker would fail to link when built. (25447991)
  • Provisioning:
  • Fixed an issue where disabling a capability in the Xcode editor would leave the associated entitlement still enabled in the app. You may need to re-download provisioning profiles with the updated capabilities list after disabling a capability. Xcode no longer copies most entitlements from the provisioning profile into the app's code signature at build time. Entitlements for Wallet, GameCenter (for OS X), Data Protection, and Push notifications are still copied from the profile. All other entitlements should be declared using the Capabilities tab in the Xcode project editor. (24771364)
  • Note: If your app configuration is not yet compatible with the corrected entitlements behavior you can temporarily disable the new behavior using:
  • defaults write com.apple.dt.Xcode WantsExtraKeysFor25642247 -bool NO
  • Archives Organizer:
  • The Archives Organize Download dSYMs button correctly downloads the dSYMs for application versions uploaded with bitcode. (25430147)
  • Interface Builder:
  • Fixed performance issue when opening storyboards or xibs with a large number of constraints. (25314053)
  • Code Completion:
  • Code completion shows the full title in the code completion pop-over. (25530060)
  • Debugging:
  • Fixes an issue related to NSSegmentedControls that caused the view debugger to come up blank. (25388091)
  • LLDB:
  • A fix to the LLDB Python interpreter allows it to correctly perform I/O within Xcode, enabling the “script” command to work as expected. Printed output from Python scripts appears in the Xcode debug console. (25448007)
  • Localization:
  • Fixes an issue that caused Xcode to crash after importing a localization. (25395822)
  • Resolved Issues:
  • Swift Debugging:
  • Swift expressions evaluated in closures with a [weak self] capture no longer crash Xcode. Inside such a closure the value of self cannot be used in debugger expressions. (25448537)
  • Note: Assigning self to another variable within the original closure source enables the value to be referenced in expressions.
  • Swift Compiler:
  • A leak when using try? has been fixed. ([SR-919](https://bugs.swift.org/browse/SR-919)) (25388323)
  • The domain of an @objc enum declared in Swift as an ErrorType is now defined consistently in Swift and Objective-C. ([SR-700](https://bugs.swift.org/browse/SR-700)) (25418435)
  • Fixes a crash when first field of a class is a struct with no members or an enum with a single case. (25314388)

New in Xcode 7.3 Build 7D175 (Mar 21, 2016)

  • Includes Swift 2.2 and SDKs for iOS 9.3, watchOS 2.2, tvOS 9.2, and OS X 10.11 El Capitan.
  • New:
  • iOS and OS X playgrounds in Xcode are interactive and respond to user-generated events such as button clicks and iOS gestures
  • Code completion offers more intelligent suggestions, including options based on the first letters of words within the API
  • Devices window supports switching between multiple Apple Watch devices paired to a single iPhone
  • Debugger automatically imports the frameworks needed when evaluating both Swift and Objective-C expressions
  • View debugging adds additional inspector information, context menus, and Assistant editor options
  • Static analyzer identifies more potential issues related to nullability and Objective-C generics
  • New:
  • Swift toolchains downloaded from Swift.org can be easily selected in the updated Components tab in Preferences
  • New #file, #line, #column, and #function expressions
  • Improvements to the standard library including new removeFirst() and removeLast() methods on slice types
  • Conditional build option can compile specific code blocks within the same file based on current Swift version
  • New #selector expression to reference the Objective-C selector of a method
  • Failable class initializers can return 'nil' before calling the superclass initializer
  • Improved compile-time diagnostic messages
  • Deprecations to syntax such as ++, --, and C-style for loops in preparation for the future Swift 3 release

New in Xcode 7.3 Build 7D152p Beta 4 (Feb 22, 2016)

  • Full details about the changes in the Apple Xcode 7.3 Build 7D152p Beta 4 build are available at http://adcdownload.apple.com/Developer_Tools/Xcode_7.3_beta_4/Xcode_7.3_beta_4_Release_Notes.pdf

New in Xcode 7.2.1 Build 7C1002 (Feb 2, 2016)

  • Xcode 7.2.1 includes Swift 2.1.1 and SDKs for iOS 9.2, watchOS 2.1, tvOS 9.1, and OS X 10.11.2 El Capitan.
  • Fixed in Xcode 7.2.1:
  • Command line tool 'xcodebuild test' will no longer time out waiting for Simulator.app to launch
  • Resolved a debugger crash that could occur in code depending on a binary Swift library or framework
  • Updated the certificate used to develop Apple Wallet passes, Safari Push Notifications, and Safari Extensions
  • Additional bug fixes and stability improvements

New in Xcode 7.3 Build 7D129n Beta 2 (Jan 26, 2016)

  • Full details about the changes in the Apple Xcode 7.3 Build 7D129n Beta 2 build are available at http://adcdownload.apple.com/Developer_Tools/Xcode_7.3_beta_2/Xcode_7.3_beta_2_Release_Notes.pdf.

New in Xcode 7.3 Build 7D111g Beta (Jan 11, 2016)

  • NEW IN XCODE 7.3 BETA - IDE:
  • Static Analyzer:
  • The static analyzer warns when nil is returned from a method or function with a nonnull return type or is passed to a parameter marked nonnull. (19003620)
  • The static analyzer checks for common misuses of Objective-C generics. (21412472)
  • The static analyzer checks for missing localizability. This check is off by default and can be enabled by selecting ‘Yes’ for ‘Missing localizability’ in the 'Static Analyzer - Generic Issues’ build settings. (23414217)
  • Code Completion:
  • Code completion provides better matches with fewer keystrokes and makes it easier to find what you’re looking for. You can type just the uppercase letters of a method name. Typing "myDelegate.tveh”, where myDelegate is a UITableViewDelegate, gives tableView(_ tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat as the first completion. You’ll also get completions that better match your intent, so typing “myView.color”, where myView is a UIView, gives every property containing the “color” substring, like “tintColor” and “backgroundColor”. (22429862)
  • Playgrounds:
  • Live-views in iOS and OS X playgrounds support user-interaction. (22418838)
  • Debugging:
  • Constraint badges in the View Debugger present values as ratios for better readability when applicable. (22535224)
  • The View Debugger inspector shows referenced views, attributes and values for a selected constraint. (22266966)
  • The View Debugger shows NSWindow size information in the inspector. (18284986)
  • The View Debugger has additional options for the assistant editor. The implementation file of data sources, delegates, and the target of controls can be viewed side by side with the 3D canvas of your app’s views. (15777861)
  • When inspecting a view in the debugger, objects with properties whose values represent classes such as Target, Delegate, and Data Source will show a navigational arrow in the inspector. Click this to open the implementation file of that class. As usual in Xcode, holding Option while clicking will perform the requested navigation in the assistant editor, instead of replacing the View Debugger canvas. (15884626)
  • 3D rotation behavior in the View Debugger is improved. (18313502)
  • A contextual menu for items selected in the Views mode of the Debug Navigator and the Canvas allows you to print the description of an object; focus on a view’s subtree; view constraints on an object; and hide views obscuring or obscured by the selected view. (20455506)
  • The Views mode of the Debug Navigator allows you to filter the view’s address, label, title, and superclass. (23095363)
  • Apple Watch Quick Switch:
  • iOS 9.3 supports pairing iPhones with multiple watches running watchOS 2.2. To choose the Apple Watch that your iPhone connects to, use the Watch app on your iPhone. To create, pair, and switch between simulated Apple Watches, use the Devices window in Xcode.
  • RESOLVED ISSUES IN XCODE 7.3 BETA - IDE:
  • General:
  • Product references in the Xcode structure navigator now respect the active run destination. For example, if a simulator run destination is selected then the resolved path for the application product reference will be to the simulator binary path. (9178537)
  • Simulator:
  • When running in the iOS simulator, an app can communicate with TCP/IP services hosted locally by the Mac using the Mac’s local IP address.
  • Interface Builder:
  • Creating connections via control-drag between multiple displays has been fixed. (14345464)
  • The Preview assistant editor for watchOS storyboards now displays UI within a realistic device bezel. (20399982)
  • UITableViewCell objects that extend below the bounds of a UITableView now draw correctly when scrolled. (23242098)
  • Debugging:
  • The option to suppress View debugging has been removed from the Options tab in the Run scheme. Developers can still do View debugging using the "Debug View Hierarchy" button in the Debug Bar. (22636367)
  • NEW IN XCODE 7.3 BETA - SWIFT 2.1 AND OBJECTIVE-C:
  • Compiler:
  • Alternative Toolchain Support — Xcode now supports using alternative toolchains, such as toolchains downloaded from Swift.org. When using an alternative toolchain, Xcode indexes, builds, and debugs with the alternative toolchain's tools instead of the default tools. Alternative toolchains must be manually downloaded and installed into /Library/Developer/Toolchains/ or ~/Library/ Developer/Toolchains/ to be recognized by Xcode.
  • New toolchain features in Xcode include:
  • Preferences > Components (previously Downloads) displays installed toolchains, in addition to simulators and documentation.
  • Activate an installed toolchain or reactivate the default toolchain by clicking it in Preferences > Components > Toolchains, or by selecting it in the Xcode > Toolchains menu. Xcode must be relaunched when switching toolchains.
  • An activated toolchain remains active across Xcode launches for all of your projects until you switch toolchains again.
  • Xcode displays an active toolchain button in the workspace window toolbar when an alternative toolchain is active. Click this button to open Preferences > Components > Toolchains.
  • Control-Click an installed toolchain in Preferences > Components > Toolchains to verify its signature, reveal it in the Finder, or move it to the Trash.
  • Xcode Server bots can be configured to use toolchains installed in /Library/Developer/ Toolchains/.
  • Restrictions when using downloaded toolchains:
  • The Swift code migrator only works when using the default toolchain.
  • Playgrounds only work when using the default toolchain.
  • Only apps built with the default toolchain may be submitted to the App Store.
  • Activating an alternative toolchain affects the Xcode IDE only. To use an alternative
  • toolchain with command-line tools, use ``xcrun --toolchain swift`` and ``xcodebuild TOOLCHAINS=swift``. You can provide the toolchain's abbreviated or full identifier, for example ``xcrun --toolchain swift`` or ``xcrun --toolchain org.swift.20151231a``.
  • Instruments may be unable to demangle certain Swift symbols or track memory usage using the Allocations instrument if the active toolchain includes changes to Swift’s mangling scheme or memory allocation runtime. (23910267)
  • Linker:
  • The Apple private frameworks have been removed from the iOS/watchOS/tvOS SDKs. If your application fails to link, please make sure that you are not using any private frameworks. The use of private frameworks is an unsupported configuration and applications that use non-public APIs will be rejected by the App Store - see App Store Guideline 2.5 (https:// developer.apple.com/app-store/review/guidelines/#functionality). (22330301)
  • RESOLVED IN XCODE 7.3 BETA - SWIFT 2.1 AND OBJECTIVE-C:
  • Debugging:
  • The Swift debugger will no longer crash when stopping in code that depends on a Swift library or framework that has been distributed in binary form. (22492040)

New in Xcode 7.2 Build 7C68 (Dec 8, 2015)

  • Xcode 7.2 includes Swift 2.1.1 and SDKs for iOS 9.2, watchOS 2.1, tvOS 9.1, and OS X 10.11.2 El Capitan.

New in Xcode 7.1.1 Build 7B1005 (Nov 10, 2015)

  • Improves stability and fixes critical issues in Interface Builder, debugging, and UI testing.

New in Xcode 7.2 Build 7C46l Beta (Oct 27, 2015)

  • iOS SDK - Xcode 7.2 includes support for building and debugging apps for iOS
  • 9.2.
  • OS X SDK - Xcode 7.2 includes support for building and debugging apps for OS X El Capitan 10.11.2.
  • General:
  • Fixed issues related to enabling Game Center and In-App Purchase in the Capabilities tab. (22964531)
  • Interface Builder:
  • Wrapping text fields layout correctly in the running application after building OS X projects. (23052169)
  • Storyboards and nibs containing a UITextView no longer hang when loaded on iOS. (22228164)
  • Asset Catalogs:
  • Fixed issues with universal assets when building asset catalogs for watchOS 2.0. (22867369)

New in Xcode 7.1 Build 7B91b (Oct 21, 2015)

  • Xcode 7.1 includes Swift 2.1 and SDKs for iOS 9.1, watchOS 2, tvOS, and OS X 10.11 El Capitan.
  • Now you can go beyond the simulator to test your app on an iPad, iPhone, Apple TV, or Apple Watch — for free. Simply enter your Apple ID into the Accounts preference pane, then attach a device to your Mac using a Lightning cable. You can use the same Apple ID you already use for iCloud, iTunes, or the App Store, or create a new one. Join the Apple Developer Program when you’re ready to distribute or submit your apps to the App Store.
  • New in Xcode 7.1:
  • Support for tvOS including storyboards, unit and UI testing, playgrounds, and crash logs
  • New workflow to add a device for development and testing, select Window > Devices then click the + button
  • Storyboard support for 3D Touch gestures
  • View debugger presents an improved view of Auto Layout contraints at runtime
  • Enhanced XCPlayground API gives playground authors more power
  • Swift 2.1 improves interoperability with C code
  • Two-factory authentication support when adding an Apple ID account

New in Xcode 7.0.1 Build 7A1001 (Sep 28, 2015)

  • Fixes bugs related to app thinning.

New in Xcode 7.1 Build 7B75 Beta 2 (Sep 24, 2015)

  • Xcode supports developing for new iOS devices (including the iPad Pro) and the new Apple TV.
  • Playgrounds supports dragging files, images and colors directly into the editor to create object literals.
  • Address Sanitizer is now supported for watchOS apps.
  • Playgrounds now support dragging files, images and colors directly into the editor to create object literals. These new literals allow you to include visual representations of files, images and colors within a playground, making for a more expressive document. Literals behave similarly to their plain code counterparts, but are rendered specially in Xcode’s editor. (22099316)
  • UI testing is now available for tvOS applications.
  • XCTest includes a new XCUIRemote class that allows interaction with an application as if an Apple Remote were used. In addition, a new XCUIElement.hasFocus property can be used to check an element’s focus state, and this “hasFocus” property can also be used in XCUIElementQuery predicates on tvOS to find the element with focus.
  • While recording a UI test on tvOS, swipe gestures on a Siri Remote will be recorded as if equivalent buttons were pressed on an Apple Remote. Navigation using the keyboard in the simulator will also be recorded as if equivalent buttons were pressed on an Apple Remote: The arrow keys are mapped to the arrow buttons, the “return” key is mapped to the Select button, the “escape” key is mapped to the Menu button, and the space bar is mapped to the Play/Pause button. (21548564)

New in Xcode 7.0 Build 7A220 (Sep 17, 2015)

  • Xcode 7 includes Swift 2 and SDKs for iOS 9, watchOS 2, and OS X 10.11 El Capitan.
  • Now you can go beyond the simulator to test your app on an iPad, iPhone, or Apple Watch — for free. Simply enter your Apple ID into the Accounts preference pane, then attach a device to your Mac using a Lightning cable. You can use the same Apple ID you already use for iCloud, iTunes, or the App Store, or create a new one. Join the Apple Developer Program when you’re ready to distribute or submit your apps to the App Store.
  • New in Xcode 7:
  • User interface testing uses accessibility to auto-generate tests for you and run them as part of a test suite
  • Code coverage displays what parts of your code are covered (and not) by your test suite
  • Interface Builder adds StackViews to simplify the construction of complex interfaces that use Auto Layout
  • Game level editors add an animation design timeline with both 2D and 3D support
  • Crash logs management adds support for OS X and app extensions
  • Address sanitizer points out code that may crash at runtime even when you cannot reproduce yourself
  • App thinning uploads all assets to the App Store so the store can then send an optimized app to your customers
  • Support for watchOS 2 including project migration tool
  • New in Swift 2:
  • Native error handling model adds a simple try / catch syntax that transparently wraps NSError
  • Tests can now access both public and internal methods from external test processes
  • Protocol extensions enable a natural chaining syntax for function calls
  • Markdown syntax is supported in .swift file comments to add rich text in Quick Help
  • Markdown comments in playgrounds render as beautiful rich text, perfect for curriculum documents
  • Availability controls warn at compile time when using API that is too new for the minimum target OS
  • SDKs for OS X, iOS, and watchOS have more natural interfaces when accessed from Swift
  • New language syntax includes guard, defer, and repeat keywords
  • Tool to convert source code to Swift 2 via menu: Edit > Convert > To Latest Swift Syntax

New in Xcode 7.1 Build 7B60 Beta (Sep 9, 2015)

  • Xcode supports developing for new hardware, including new iOS devices and the new Apple TV.
  • Resolved:
  • Interface Builder:
  • Fixed "Editor > Canvas > Show Intrinsic Size Constraints Contributing To Ambiguity" when there is content priority ambiguity for the selected views using Auto Layout in the Interface Builder canvas. (19689060)
  • Explicit layout margins set on UIStackView in Interface Builder are now properly reflected at runtime. (21613035)
  • Debugging:
  • Dashed constraints can indicate a priority lower than 1000. (15990914)
  • Constraints show badges to indicate their relationship and ratios. (15991257) • Improved visibility of selected constraints. (22092490)
  • watchOS:
  • Previously, if your iOS app embedded a watchOS app and you had a framework for both iOS and watchOS embedded in each app, your project would fail to build when you performed the Archive action. This has been fixed. (22183332)
  • Swift Language & Compiler:
  • Array slices with a non-zero lower index are now correctly displayed in the Swift REPL and LLDB's "po" output. (22373053)

New in Xcode 7 Build 7A192o Beta 6 (Aug 24, 2015)

  • NEW FEATURE HIGHLIGHTS:
  • Platform Support:
  • Xcode 7 beta 6 includes SDKs for watchOS 2.0, OS X version 10.11, and iOS 9.
  • Swift Language:
  • Error Handling. Throw, catch, manage, and handle errors in Swift. Interoperate seamlessly with NSError.
  • Availability. Adopt new APIs while still deploying back to older OS versions, with compile-time errors to catch situations when you’ve used API that isn’t available on the deployment target.
  • Protocol extensions. Add methods and properties to any class that conforms to a protocol. Re-use more of your code.
  • Testability. Write tests of Swift 2.0 frameworks and apps with access to all your public and internal routines.
  • Swift 1.2 to 2.0 Migrator. Helps you upgrade your existing Swift source code to take advantage of Swift 2.0.
  • Objective-C Updates:
  • Generics. Specify type information for collections, simplifying the code you write. Nullability. Indicate in Objective-C source when to expect nil or non-nil results.
  • Playgrounds:
  • Rich-text comments. Explain what is going on in the Swift code with a markdown-like syntax.
  • Inline results. Show your code’s results directly below the code that produces them.
  • Resources. Add resources like images to your playground using the project navigator.
  • Auxiliary Sources. Keep additional support code separate from the playground itself.
  • Pages. Bundle related concepts together with multiple, targeted to structure a playground.
  • App Thinning:
  • Bitcode. Archive for upload to the App Store in an intermediate LLVM binary representation that the store can then optimize into the 64 or 32-bit executable to be delivered to customers.
  • Slicing. Artwork incorporated into the Asset Catalog and tagged for platform needs allows the App Store to deliver only what is needed for installation.
  • On Demand Resources. Host additional content for your app on the iTunes App Store repository, allowing the app to fetch resources as needed using asynchronous download and installation.
  • Debugging:
  • Energy Gauge for iOS. Track energy usage with iOS 9 on a per-process basis.
  • Address Sanitizer. Build instrumented Objective-C and C code to trap the sources of memory corruption problems.
  • Testing:
  • User interface testing and recording. Test applications at the user interface surface with elements, queries, and simulated events. The UI recording feature enables capture of UI actions into source to facilitate creating tests.
  • Code coverage. Provides report information to evaluate a test suite for completeness. Free Provisioning:
  • Develop on your own device. Streamlined mechanism to provision and install development project on physical devices for testing and evaluation.
  • Crash Logs:
  • Test Flight and Crash Reports. Enhanced to allow using crash data from OS X apps as well as watchOS and iOS apps.
  • NEW IN XCODE 7 BETA 6:
  • IDE UI Testing:
  • XCTest offers API to automate complex controls such as date pickers. (20577276)

  • RESOLVED IN XCODE 7 BETA 6 — IDE:
  • UI Testing:
  • Apps with names that contain parenthesis can be exported from the Archives organizer. (22142125)
  • watchOS App Installation:
  • The STRIP_BITCODE_FROM_COPIED_FILES build setting is no longer needed to install Watch apps written with Swift code from an iPhone to a Watch. (22139044)
  • Xcode Source Control Management
  • Xcode no longer crashes when editing a document while it is being unlocked. (21528657)

  • RESOLVED IN XCODE 7 BETA 6 - SWIFT 2.0 AND OBJECTIVE-C:
  • Swift Debugging:
  • Swift expressions in LLDB that can throw errors required a try prefix in a prior beta. Relaxed syntax for expressions now works as expected. (21990339)
Evaluating a Swift expression with po when debugging arm64 code on devices no longer fails. (22143534)
  • Swift Language & Compiler:
  • Use of guard let at the top level of a playground or script file no longer results in memory corruption. (21792430)
  • The compiler now generates the correct floating-point value when a negative integer literal is used in a generic context with T as a floating-point type. (20467684)
  • Invalid expressions involving prefix & no longer crash the compiler. (18496742)
  • Fixed a compiler crash when a protocol extension setter is invoked on a class that conforms to the protocol.
  • (21578832)


New in Xcode 7 Build 7A165t Beta 4 (Jul 22, 2015)

  • Platform Support:
  • Xcode 7 beta 4 includes SDKs for watchOS 2.0, OS X version 10.11, and iOS 9.
  • Swift Language:
  • Error Handling. Throw, catch, manage, and handle errors in Swift. Interoperate seamlessly with NSError. 
Availability. Adopt new APIs while still deploying back to older OS versions, with compile-time errors to catch situations when you’ve used API that isn’t available on the deployment target. 
Protocol extensions. Add methods and properties to any class that conforms to a protocol. Re-use more of your code. 
Testability. Write tests of Swift 2.0 frameworks and apps with access to all your public and internal routines. 
Swift 1.2 to 2.0 Migrator. Helps you upgrade your existing Swift source code to take advantage of Swift 2.0. 

  • Objective-C Updates:
Generics. Specify type information for collections, simplifying the code you write.
  • Nullability. Indicate in Objective-C source when to expect nil or non-nil results. 

  • Playgrounds:
Rich-text comments. Explain what is going on in the Swift code with a markdown-like syntax. 
Inline results. Show your code’s results directly below the code that produces them.
Resources. Add resources like images to your playground using the project navigator.
Auxiliary Sources. Keep additional support code separate from the playground itself.
Pages. Bundle related concepts together with multiple, targeted to structure a playground. 

  • App Thinning:
Three complementary technologies designed to deliver optimized installation by the App Store. 
Bitcode. Archive for upload to the App Store in an intermediate LLVM binary representation that the store can then optimize into the 64 or 32-bit executable to be delivered to customers. 
Slicing. Artwork incorporated into the Asset Catalog and tagged for platform needs allows the App Store to deliver only what is needed for installation. 
On Demand Resources. Host additional content for your app on the iTunes App Store repository, allowing the app to fetch resources as needed using asynchronous download and installation. 

  • Debugging:
Energy Gauge for iOS. Track energy usage with iOS 9 on a per-process basis. 
Address Sanitizer. Build instrumented Objective-C and C code to trap the sources of memory corruption problems. 

  • Testing:
User interface testing and recording. Test applications at the user interface surface with elements, queries, and simulated events. The UI recording feature enables capture of UI actions into source to facilitate creating tests. 
Code coverage. Provides report information to evaluate a test suite for completeness.
  • Free Provisioning:
Develop on your own device. Streamlined mechanism to provision and install development project on physical devices for testing and evaluation. 

  • Crash Logs:
Test Flight and Crash Reports. Enhanced to allow using crash data from OS X apps as well as watchOS and iOS apps. 

  • New in Xcode 7 beta 4 — IDE:
  • Interface Builder:
  • Storyboard references may be deployed to iOS 8, OS X 10.10, and watchOS 1. Please note that backwards- deployed storyboard references may not be connected to relationship segues and may not refer to storyboards in external bundles. (21275172)
  • Testing:
  • Using UI recording generates code for iOS gestures like doubleTap, twoFingerTap, longPress, swipeUp, swipeDown, swipeLeft, and swipeRight. (20278248)
  • Resolved in Xcode 7 beta 4 — IDE:
  • General:
  • Xcode 7 supports development for iOS 8.4. (21640571, 20699475, 21107693)
  • Code Coverage:
  • Code coverage works with UI testing. (20966994)
  • Testing:
  • The OCUnit to XCTest migrator does not leave test targets linking against SenTestingKit. (21235034) Long assertions in the test report are not truncated. (21083089)
Unpredictable results caused by Auto-correct in UI tests that type text have been fixed. (21106884)
UI testing finds elements with names containing decomposable Unicode characters. (20804391)
  • Debugger:
  • Breakpoints set in source code for the target application that had not worked in previous betas of Xcode 7 should work as expected starting with Xcode 7 beta 4. (21798743)
  • GPU debugger frame captures of iOS Metal apps no longer crash Xcode. (21741213)
  • Source Control:
  • Stability issues with Blame and Log SCM editor modes have been resolved. (21487571)
  • Interface Builder:
  • Storyboard references work with WatchKit storyboards. (21191010)
The Interface Builder connections inspector properly shows a view outlet for Swift ViewController subclasses
  • if they are marked with @objc but do not have an exported class name. (20909753)
  • Playgrounds:
  • The erratic cursor behavior seen in playground documents stored in folders managed by network sync- service has been fixed. (21358571)
  • New in Xcode 7 beta 4 — Swift 2.0 and Objective-C:
  • Objective-C Language Changes:
  • The double-underscored nullability qualifiers (__nullable, __nonnull, and __null_unspecified) have been renamed to use a single underscore with a capital letter (_Nullable, _Nonnull,
and _Null_unspecified, respectively). The compiler predefines macros mapping from the old double- underscored names to the new names for source compatibility. (21530726)
  • Swift Language Changes:
  • Enums and cases can be marked indirect, which causes the associated value for the enum to be stored indirectly, allowing for recursive data structures to be defined. For example: 
 enum List {
  • case Nil
  • indirect case Cons(head: T, tail: List)
  • 
} 
 indirect enum Tree {
  • case Leaf(T)
  • case Branch(left: Tree, right: Tree)
  • 
} 
(21643855) 
AnyObject and NSObject variables that refer to class objects can be cast back to class object types. For example, this now succeeds: 
 let x: AnyObject = NSObject.self
  • let y = x as! NSObject.Type
  • Arrays, dictionaries, and sets that contain class objects successfully bridge with NSArray, NSDictionary, and NSSet as well. Objective-C APIs that provide NSArray * objects, such as - [NSURLSessionConfiguration protocolClasses], now work correctly when used in Swift. (16238475)
Applying the @objc attribute to a class changes that class's compile-time name in the target's generated Objective-C header, as well as changing its runtime name. This applies to protocols as well. For example: 
 // Swift
  • @objc(MyAppDelegate)
  • class AppDelegate : NSObject, UIApplicationDelegate {
  • // ... } 
 // Objective-C
  • @interface MyAppDelegate : NSObject
  • // ... @end 
(17469485) 
The ability to refer to the "0" element of a scalar value (producing the scalar value itself) has been removed. (17963034) 
The error message diagnostics produced by the type checker constraint system are somewhat improved in this beta. Further improvements are coming in a subsequent beta. (20806331) 
The SinkType protocol and SinkOf struct have been removed from the standard library in favor of (T) -> () closures. (21663799) 
ExtensibleCollectionType has been folded into RangeReplaceableCollectionType. In addition, default implementations have been added as methods, which should be used instead of the free Swift module functions related to these protocols. (18220295) 
Properties and methods using Unmanaged can be exposed to Objective-C. (16832080) 
The performSelector family of APIs is now available for Swift code. (17227475) 
Fields of C structs that are marked __unsafe_unretained are presented in Swift using Unmanaged. It is not possible for the Swift compiler to know if these references are really intended to be strong (+1) or unretained (+0). (19790608) 
Swift documentation comments recognize a top-level list item - Throws: ... which should be used to document what errors can be thrown and why. These appear alongside parameters and return descriptions in Xcode's QuickHelp. (21621679) 
Types can conform to protocols that are less available than the type itself. For example: 
 @available(iOS 9.0, *)
  • protocol P { ... }
  • @available(iOS 7.0, *)
  • class MyController : UIViewController, P {
  • ... } 
(21718497)
  • Resolved Issues in Xcode 7 beta 4 — Swift 2.0 and Objective-C:
  • Swift Language & Compiler:
  • When throwing a reference to an NSError instance in Swift, the Swift runtime no longer loses the userInfo of the original NSError if it is caught as an NSError. The Swift runtime now preserves the identity of the original NSError. For example, this assertion now holds: 
 let e = NSError(...)
  • do {
  • throw e
  • } catch let e2 as NSError {
  • assert(e === e2)
  • (21546914) 
The Swift runtime metadata cache crash when trying to form very large tuple types has been fixed. (21659505) 
The Swift runtime crash when a protocol conformance is added to an unavailable weakly-linked class via an extension has been fixed. (21541766) 
Xcode handles auto-indentation correctly inside inactive blocks of #if config statements. (16427856)

New in Xcode 6.4 Build 6E35b (Jul 1, 2015)

  • Adds support for iOS 8.4
  • Includes Swift 1.2 and SDKs for OS X 10.10 Yosemite and iOS 8.4

New in Xcode 7 Build 7A121l Beta 2 (Jun 23, 2015)

  • NEW FEATURE HIGHLIGHTS:
  • Platform Support:
  • Xcode 7 Beta includes SDKs for watchOS 2.0, OS X version 10.11, and iOS 9.
  • Swift Language:
  • Error Handling. Throw, catch, manage, and handle errors in Swift. Interoperate seamlessly with NSError.
  • Availability. Adopt new APIs while still deploying back to older OS versions, with compile-time errors to catch situations when you’ve used API that isn’t available on the deployment target.
  • Protocol extensions. Add methods and properties to any class that conforms to a protocol. Re-use more of your code.
  • Testability. Write tests of Swift 2.0 frameworks and apps with access to all your public and internal routines.
  • Swift 1.2 to 2.0 Migrator. Helps you upgrade your existing Swift source code to take advantage of Swift 2.0.
  • Objective-C Updates:
  • Generics. Specify type information for collections, simplifying the code you write.
  • Nullability. Indicate in Objective-C source when to expect nil or non-nil results.
  • Playgrounds:
  • Rich-text comments. Explain what is going on in the Swift code with a markdown-like syntax.
  • Inline results. Show your code’s results directly below the code that produces them.
  • Resources. Add resources like images to your playground using the project navigator.
  • Auxiliary Sources. Keep additional support code separate from the playground itself.
  • Pages. Bundle related concepts together with multiple, targeted to structure a playground.
  • App Thinning:
  • Three complementary technologies designed to deliver optimized installation by the App Store.
  • Bitcode. Archive for upload to the App Store in an intermediate LLVM binary representation that the store can then optimize into the 64 or 32-bit executable to be delivered to customers.
  • Slicing. Artwork incorporated into the Asset Catalog and tagged for platform needs allows the App Store to deliver only what is needed for installation.
  • On Demand Resources. Host additional content for your app on the iTunes App Store repository, allowing the app to fetch resources as needed using asynchronous download and installation.
  • Debugging:
  • Energy Gauge for iOS. Track energy usage with iOS 9 on a per-process basis.
  • Address Sanitizer. Build instrumented Objective-C and C code to trap the sources of memory corruption problems.
  • Testing:
  • User interface testing and recording. Test applications at the user interface surface with elements, queries, and simulated events. The UI recording feature enables capture of UI actions into source to facilitate creating tests.
  • Code coverage. Provides report information to evaluate a test suite for completeness.
  • Free Provisioning:
  • Develop on your own device. Streamlined mechanism to provision and install development project on physical devices for testing and evaluation.
  • Crash Logs:
  • Test Flight and Crash Reports. Enhanced to allow using crash data from OS X apps as well as watchOS and iOS apps.
  • RESOLVED ISSUES:
  • Source Control:
  • Committing a removed file to a Git repository will delete the file on disk and from the Git repository.
  • (21222457)
  • Instruments:
  • When using the Profile action from Xcode to profile a WatchKit app, when Instruments is not previously running, Instruments no longer fails with the alert that states 'The document "pbxperfconfig.plist" could not be opened.’ Instead, a window comes up briefly, indicating that Instruments is searching for the watch, and dismisses itself once the watch is properly initialized. (21313706)
  • Instruments no longer fails to run as a user other than the first user that ran Instruments. (21331575)
  • Compiler:
  • dsymutil no longer prints warnings about unresolved external types when compiling C++ projects with precompiled headers. (21170404)
  • A compiler crash when overriding classes with designated initializers when whole-module optimization is enabled has been fixed. (21233342)
  • watchOS:
  • Instruments gets symbols for system frameworks, instead only displaying addresses when launching a WatchKit App in System Trace and Time Profiler. (21259392)
  • Instruments no longer reports ‘The document “pbxperfconfig.plist” could not be opened” when performing the Profile action from Xcode on a WatchKit App. (21161649)
  • Localization:
  • Using stringsdict files in your target's copy files phase will not result in an error. (21113196)
  • General:
  • Submitting an archive built with BITCODE_ENABLED=NO will not fail during upload. (21247555)
  • Fixed issue where recording UI tests do not work if the device or simulator is in landscape orientation. (21096781)

New in Xcode 6.4 Build 6E31c Beta 4 (Jun 10, 2015)

  • NEW FEATURES:
  • iOS SDK:
  • Xcode 6.4 includes support for building and debugging apps for iOS 8.4
.

New in Xcode 7 Build 7A120f Beta 1 (Jun 9, 2015)

  • NEW FEATURE HIGHLIGHTS:
  • Platform Support:
  • Xcode 7 Beta includes SDKs for watchOS 2.0, OS X version 10.11, and iOS 9.
  • Swift Language:
  • Error Handling. Throw, catch, manage, and handle errors in Swift. Interoperate seamlessly with NSError.
  • Availability. Adopt new APIs while still deploying back to older OS versions, with compile-time errors to catch situations when you’ve used API that isn’t available on the deployment target.
  • Protocol extensions. Add methods and properties to any class that conforms to a protocol. Re-use more of your code.
  • Testability. Write tests of Swift 2.0 frameworks and apps with access to all your public and internal routines.
  • Swift 1.2 to 2.0 Migrator. Helps you upgrade your existing Swift source code to take advantage of Swift 2.0.
  • Objective-C Updates:
  • Generics. Specify type information for collections, simplifying the code you write. Nullability. Indicate in Objective-C source when to expect nil or non-nil results.
  • Playgrounds:
  • Rich-text comments. Explain what is going on in the Swift code with a markdown-like syntax.
  • Inline results. Show your code’s results directly below the code that produces them.
  • Resources. Add resources like images to your playground using the project navigator.
  • Auxiliary Sources. Keep additional support code separate from the playground itself.
  • Pages. Bundle related concepts together with multiple, targeted to structure a playground.
  • App Thinning:
  • Three complementary technologies designed to deliver optimized installation by the App Store.
  • Bitcode. Archive for upload to the App Store in an intermediate LLVM binary representation that the store can then optimize into the 64 or 32-bit executable to be delivered to customers.
  • Slicing. Artwork incorporated into the Asset Catalog and tagged for platform needs allows the App Store to deliver only what is needed for installation.
  • On Demand Resources. Host additional content for your app on the iTunes App Store repository, allowing the app to fetch resources as needed using asynchronous download and installation.
  • Debugging:
  • Energy Gauge for iOS. Track energy usage with iOS 9 on a per-process basis.
  • Address Sanitizer. Build instrumented Objective-C and C code to trap the sources of memory corruption problems.
  • Testing:
  • User interface testing and recording. Test applications at the user interface surface with elements, queries, and simulated events. The UI recording feature enables capture of UI actions into source to facilitate creating tests.
  • Code coverage. Provides report information to evaluate a test suite for completeness. Free Provisioning
  • Develop on your own device. Streamlined mechanism to provision and install development project on physical devices for testing and evaluation.
  • Crash Logs:
  • Test Flight and Crash Reports. Enhanced to allow using crash data from OS X apps as well as watchOS and iOS apps.
  • NEW FEATURES IN XCODE 7 BETA IDE:
  • Swift in Xcode:
  • Playgrounds support multiple pages. You can add a new page to any playground by selecting File > New Playground Page. In the navigator and jump bar, you'll see all pages in the playground. You can add navigation between pages with the new page navigation markup (20192277).
  • You can use the assistant editor to get a summary of the interface of your Swift classes. When viewing a Swift file in the primary editor, the Counterparts assistant will show a summarized version of the class that includes declarations (but not implementation) of the methods and functions in your file along with documentation comments. (17684981)
  • A migrator is available to help migrate your code from Swift 1.2 to Swift 2.0. Select Edit->Convert->To Latest Swift Syntax. The migrator is fully effective when it is applied on Swift 1.2 projects. If the migrator detects that the code is fully or partially migrated to Swift 2.0, it will only perform simple changes to correct certain compiler diagnostics. (19653306)
  • "Generated Interface" of the assistant editor can be used to get the Swift interface of an Objective-C header file in your own project. (19320817)
  • Xcode 7 has a optimization-level menu for Swift under ‘build settings’. It is possible to select Whole-Module optimization from the optimization-level menu. Previously, unchecked build were an optimization level.
  • Use the “disable safety checks” build setting to disable runtime checks.
  • Compiling Swift projects in Whole Module Optimizations mode will parallelize some compilation phases, which reduces compile time.
  • Interface Builder:
  • Default keyboard shortcuts for zooming in Interface Builder have been changed to match the rest of Xcode. (15057238, 16530809)
  • Interface Builder adds the ability to edit auxiliary objects belonging to a storyboard scene. (9478187)
  • Interface Builder supports the new NSCollectionView API in 10.11, using dataSource and layouts like on iOS. (18997303)
  • Workaround: It is not possible to configure prototype items in Interface Builder. Use -[NSCollectionView registerClass:forItemWithIdentifier:] or -[NSCollectionView registerNib:forItemWithIdentifier:] in code.
  • Notes from Interface Builder’s Identity inspector are included in --export-strings-file output and XLIFF files exported using the project editor’s Export For Localization feature. (18023555)
  • Interface Builder supports placeholder references for scenes in other storyboards, and segues that cross storyboard boundaries. (9565583)
  • Interface Builder can set multiple left/right bar button items in iOS projects. (10293104)
  • Interface Builder enables setting the accessiblityIdentifier property of AppKit and UIKit views, via the Identity inspector. (8913778, 20377226)
  • Interface Builder adds authoring support for the new UIStackView (iOS 9) and exposes a distribution property for NSStackView (OS X 10.11). Access this with the "Embed In Stack View" button at the bottom right of the canvas. (18420765)
  • Background placeholders on custom views and other containers can be hidden on the Interface Builder canvas with the option "Editor->Canvas->Show Background Placeholders".
  • Resize knobs for views on the canvas are interactable outside the canvas frame (15864964)
  • Background placeholders on custom views and other containers can be hidden on the Interface Builder canvas with the option "Editor->Canvas->Show Background Placeholders”. (20580948)
  • Interface builder adds additional constraint types, including proportional width and height constraints in superviews (such as the content view of a window, or view of a view controller). (17011782)
  • Interface Builder documents with a development target Find Selected Symbol in Project" menu item. (15573153)
  • Find navigator shows caller hierarchy. Select a function or method, and right-click to “Find Call Hierarchy” (15716883)
  • The Find navigator also displays the language for .strings files containing matches. (18372154)
  • Schemes:
  • Users can toggle all the checkboxes in a column in the Manage Schemes sheet by holding down the option key when clicking a checkbox. (8096575)
  • Resolved Issues in Xcode 7 beta — IDE Interface Builder
  • Interface Builder allows setting an identifier for an auto layout constraint, to assist in debugging unsatisfiable constraints. (13645911)
  • Holding the Command (⌘) key while dragging to move a view will keep the dragged view in the same container, rather than making it a subview of a view it is dragged over. (18683271)
  • Additional types of constraints can be created in Interface Builder including proportional width and height constraints to any superview such as the content view of a window or view of a view controller. (17011782)
  • Build System:
  • Fixed an issue which could cause Xcode to occasionally fail to rebuild some source files when their imported headers changed. (13697791)
  • Improved the heuristic used to throttle the build system's parallelism under memory pressure. (20245603)
  • Fixed an issue which could cause Xcode to use less parallelism when building than it should. (17665160)
  • Xcode performance when reloading .xcconfig files from disk is significantly improved. (14136335)
  • Fixed an issue which caused stopping a build to sometimes take much longer than it should. (10233505)
  • A "Copy Files" build phase on a framework target with a destination of "PlugIns" will now copy its contents to the "PlugIns" directory in the framework rather than the "Resources" directory. (11488493)
  • "Other Code Signing Flags" (OTHER_CODE_SIGN_FLAGS) build setting properly handles spaces. (18977465)
  • Instruments:
  • With iOS 9.0 devices, Leaks recordings should no longer get stuck "Analyzing Process." (18215045) When profiling Swift Apps, standard library symbols should be correctly symbolicated. (21131543)
  • General
  • Run Script scheme actions take the run destination into account when passing environment variables, such as SDKROOT, that depend on the run destination. (19652312)
  • When opening a workspace with more than 80 targets for the first time, Xcode prompt you to ask if you want Xcode to autocreate schemes for those targets instead of doing so automatically. (20877091)

New in Xcode 6.3.2 Build 6D2105 (May 19, 2015)

  • Improves stability and fixes an issue that could result in slow compile times for complex Swift projects.

New in Xcode 6.4 Build 6E23 Beta 3 (May 12, 2015)

  • ISSUES RESOLVED IN XCODE 6.4 BETA 3:
  • General:
  • Xcode now allows programs to have more than 128 MB of arm64 code. Previously, programs with more than 128 MB of arm64 code would fail at link time with a “branch out of range” error. (20244939)
  • Account Management:
  • Xcode will not attempt to revoke and request a new certificate when the latest signing identity is already located in the keychain. (20659239)
  • Interface Builder:
  • Storyboard and xib files with custom fonts will no longer hang Xcode. (20543374)


New in Xcode 6.3.2 Build 6D2102 GM (May 9, 2015)

  • Swift Compiler:
  • Fixed a regression in the compile time of larger projects using Swift frameworks or using projects supplied from external sources (e.g. CocoaPods). (20638611)
  • Account Management:
  • Xcode does not attempt to revoke and request a new certificate when the latest signing identity is already located in the keychain. (20659239)
  • Testing:
  • -[XCTestCase expectationWithDescription:] no longer takes a long time to return for some projects. (20588500)
  • Playgrounds:
  • The Assistant editor no longer loses its categories. (20163580)
  • General:
  • Renaming a project does not crash Xcode or damage projects. (20642070)
  • Canceling a build now properly terminates running commands (including shell scripts) with the SIGINT signal, before sending SIGKILL. (20453317)

New in Xcode 6.4 Build 6E14 Beta 2 (Apr 28, 2015)

  • NEW FEATURES:
  • iOS SDK: Xcode 6.4 includes support for building and debugging apps for iOS 8.4

  • RESOLVED ISSUES:
  • General:
  • Renaming a project does not crash Xcode or damage projects. (20642070)
  • Canceling a build now properly terminates running commands (including shell scripts) with the SIGINT signal, before sending SIGKILL. (20453317)
  • Testing:
  • [XCTestCase expectationWithDescription:] no longer takes a long time to return for some projects. (20588500)
  • Compiler:
  • The "Merge" compile phase for projects with Swift code now does not hang for some targets. You no longer need to enable Whole Module Optimization to avoid this issue. (20291720)
  • Playgrounds:
  • The assistant editor no longer loses its categories. (20163580)


New in Xcode 6.3.1 Build 6D1002 (Apr 22, 2015)

  • Improves stability and fixes critical issues in playgrounds, debugging, and Interface Builder.

New in Xcode 6.4 Build 6E7 Beta (Apr 14, 2015)

  • NEW FEATURES:
  • iOS SDK:
  • Xcode 6.4 includes support for building and debugging apps for iOS 8.4.

New in Xcode 6.3 Build 6D570 (Apr 9, 2015)

  • Includes Swift 1.2 and SDKs for OS X 10.10 Yosemite and iOS 8.3
  • New in Swift 1.2:
  • Incremental builds dramatically improve the compile time of Swift projects
  • Swift compiler produces even faster executables for both debug and release builds
  • Language refinements to 'let' and 'as' make Swift more consistent and clear
  • Standard library adds powerful features including the 'Set' data type and 'flatMap' operation
  • Code converter and Fix-its help you migrate to Swift 1.2
  • Additional features in Xcode 6.3:
  • Playgrounds are more attractive and readable with rich text formatting and results displayed in-line
  • Playgrounds can embed additional code and resources to improve performance and simplify sharing
  • Updated OS X SDK includes support for the new Force Touch trackpad
  • Crashes organizer makes it easy to triage and fix crashes for App Store and TestFlight apps
  • Apple LLVM compiler 6.1 improves diagnostic messages and adds support for C++'14
  • Additional bug fixes and stability improvements

New in Xcode 6.3 Build 6D554n Beta 4 (Mar 25, 2015)

  • NEW:
  • Objective-C Language Changes:
  • Nullability qualifiers will no longer be silently moved from a type specifier to the innermost enclosing pointer or block declarator. Instead, they must be written to the right of the pointer or block declarator. (20084364)
  • ISSUES RESOLVED:
  • Swift Language:
  • The documentation for assert, precondition, assertionFailure, preconditionFailure, and fatalError was made more accurate and complete. A bug was fixed that could cause undefined behavior in -O when assertionFailure was called. (19810166)
  • Builds released for sale in the App Store are now visible in the Crash Reports Organizer along with test builds. (19946447)


New in Xcode 6.3 Build 6D543q Beta 3 (Mar 12, 2015)

  • NEW FEATURES:
  • Force Touch Support:
  • Xcode uses Force Touch trackpad for Macs that include it, and supports configuring Force Touch trackpad functionality in Xcode’s Interface Builder editor for NSButton and NSSegmentedControl. Adopting Force Touch in Interface Builder requires OS X Yosemite 10.10.3 (14D98g). (16140561, 16140600, 18660545)
  • Xcode Playground Enhancements:
  • Playgrounds can now be upgraded to the new format by selecting the Editor > Upgrade Playground… menu item. The rich comments and supporting source files features are only supported in Playgrounds created with Xcode 6.3 or later. (19938996)
  • Playgrounds now expose their structure in the Project navigator. To show the Project navigator, select View > Navigators > Show Project Navigator. This allows you to use resources (e.g. images) from within your Playground: twist open the Playground to see the Resources folder and drag them in. (19115173)
  • Playgrounds now let you provide auxiliary support source files, which are compiled into a module and automatically imported into your Playground. To use the new supporting source files feature, twist open the playground in the project navigator to see the new Sources folder, which has a single file named "SupportCode.swift" by default. Add code to that file, or create new source files in this folder, which will all be automatically compiled into a module and automatically imported into your playground. (19460887)
  • Swift Standard Library:
  • flatMap was added to the standard library. flatMap is the function that maps a function over something and returns the result flattened one level. FlatMap has many uses, such as to flatten an array: [[1,2], [3,4]].flatMap { $0 } or to chain optionals with functions: [[1,2], [3,4]].first.flatMap
  • { find($0, 1) }. (19881534)
  • Debugger Enhancements:
  • LLDB's Objective-C expression parser can now import modules.
  • Before Xcode 6.3, methods and functions without debug information required explicit typecasts to specify their return type. Importing modules allows a developer to avoid the more labor-intensive process of determining and specifying this information manually
  • Other benefits of importing modules include better error messages, access to variadic functions when running on 64-bit devices, and eliminating potentially incorrect inferred argument types. In several cases, not having a proper function prototype could lead to unexpected failures. (18782288)
  • RESOLVED ISSUES:
  • Playgrounds:
  • Using the "/*: */ multi-line variant of Playgrounds rich comment markers no longer results in the comment block being duplicated further down in the document. (19917362)
  • Swift Language:
  • The compiler no longer generates invalid code on casting of NSArray to Swift array in Release mode (19724405)
  • Warnings are now emitted for uses of APIs that are deprecated on all deployment targets. (17406050)
  • Bridging an empty Swift array from Objective-C back into Swift no longer causes a segfault. (19883644)
  • Providing a stored property with an @objc attribute that has a name now affects the selector names of the property’s getters and setters. (19963219)
  • A previous beta began requiring self. on the use of instance members within local functions (as it is for closures). This requirement was considered too broad and has been removed. (19945738)
  • Compiler:
  • When building a module, compilations that import that module no longer give "error: timed out waiting to acquire lock file for module" instead of the correct error message. (19840043)
  • iOS Simulator:
  • iOS Simulator has been fixed and now maintains network connectivity when the host’s network configuration changes. (17867038)

New in Xcode 6.2 Build 6C131e (Mar 10, 2015)

  • Adds support for iOS 8.2 and WatchKit to create apps for Apple Watch.
  • ALSO ADDRESSES THE FOLLOWING SECURITY ISSUES:
  • subversion:
  • Available for: OS X Mavericks v10.9.4 or later
  • Impact: Multiple vulnerabilities in Apache Subversion
  • Description: Multiple vulnerabilities existed in Apache Subversion, the most serious of which may have allowed an attacker with a privileged position to spoof SSL servers via a crafted certificate. These issues were addressed by updating Apache Subversion to version 1.7.19.
  • CVE-ID: CVE-2014-3522, CVE-2014-3528, CVE-2014-3580, CVE-2014-8108
  • Git:
  • Available for: OS X Mavericks v10.9.4 or later
  • Impact: Synching with a malicious git repository may allow unexpected files to be added to the .git folder
  • Description: The checks involved in disallowed paths did not account for case insensitivity or unicode characters. This issue was addressed by adding additional checks.
  • CVE-ID: CVE-2014-9390 (Matt Mackall of Mercurial and Augie Fackler of Mercurial)

New in Xcode 6.3 Build 6D532l Beta 2 (Feb 24, 2015)

  • NEW FEATURES:
  • App Store and Test Flight Crash Logs Organizer:
  • Xcode can now display crash reports gathered from opted-in App Store users and TestFlight users. To view crash reports for your apps, first enter your developer accounts into Xcode’s Accounts pane. View crash reports for the iOS apps associated with your developer accounts within Xcode’s Organizer window. Crash reports are only available for apps that were uploaded to iTunes Connect with symbol information. Xcode provides a list of the top crashes for each of your apps, and the crash reports are fully symbolicated and aggregated on Apple's servers. Xcode also provides workflows for managing your crash reports and viewing backtraces directly beside your project’s source code. (14995491)
  • Xcode Playgrounds Enhancements:
  • Playgrounds now offer an easy way to create and edit rich documentation using marked-up text. Use the new “//:” or “/*: */“ style comment to indicate when text should be shown as a rich comment. Change the viewing mode of a Playground by using the “Show Documentation as Rich Text” and “Show Documentation as Raw Text” menu items in the Editor menu. For more information, see Playground Markup Format Reference in the Xcode documentation. (19265300)
  • Playground results are now shown inline, rather than in the timeline view. When there are multiple results on a line, you can toggle between viewing a single result and a listing of all the results. For result sets that are numbers, there is the added option of viewing as a graph. Results can be resized to show more or less information. For more information, see Exploring and Evaluating Swift Code in a Playground in the Xcode documentation. (19259877)
  • Playground scrolling and performance has been improved.
  • Swift Performance:
  • A new compilation mode has been introduced for Swift called Whole Module Optimization. This option optimizes all of the files in a target together and enables better performance (at the cost of increased compile time). The new flag can be enabled in Xcode using the “Whole Module Optimization” build setting or by using the swiftc command line tool with the flag “-whole-module-optimization”. (18603795)
  • Swift Language Enhancements:
  • The “if-let" syntax has been extended to support a single leading boolean condition along with optional binding let clauses. (19797158)
  • The @autoclosure attribute has a second form, @autoclosure(escaping) that provides the same caller-side syntax as @autoclosure but allows the resulting closure to escape in the implementation. (19499207)
  • Swift Language Changes:
  • The precedence of the Nil Coalescing Operator (??) has been raised to bind tighter than short-circuiting logical and comparison operators, but looser than as conversions and range operators. This provides more useful behavior for expressions like: if allowEmpty || items?.count ?? 0 > 0 {
  • The “&/” and “&%” operators were removed. Their behavior was identical to / and % respectively, and were redundant. (17926954)
  • Constructing a UInt8 from an ASCII value now requires the ascii keyword parameter. Using non-ASCII unicode scalars will cause this initializer to trap. (18509195)
  • The C size_t family of types are now imported into Swift as Int to decrease the amount of explicit type conversion between Int and UInt, and to better align with sizeof returning Int. (18949559)
  • Classes that do not inherit from NSObject but do adopt an @objc protocol will need to explicitly mark those methods, properties, and initializers used to satisfy the protocol requirements as @objc.
  • Swift Standard Library Enhancements:
  • The function zip was added which joins two sequences together into one sequence of tuples. (17292393) utf16Count is removed from String. Instead use count on the UTF16 view of the String. (17627758)
  • Debugger Enhancements:
  • Evaluating Swift expressions performance is improved especially when debugging code running on devices. This will be most noticeable in the Swift REPL and when issuing LLDB commands such as p, po, and expression. (19213054)
  • Significant improvements in LLDB's Swift support have addressed many known issues with the Swift debugging experience. (19656017)
  • ISSUES RESOLVED:
  • Xcode Interface Builder:
  • The Interface Builder editor now supports connecting between source code and a UIRefreshControl. (17935413)
  • The UIVisualEffectView item is now available in the object library. (19779350)
  • Xcode Swift Support:
  • Addressed more instances of intermittent SourceKitService crashes while browsing a project. (19059478) Several common issues affecting the “Convert to Latest Swift” tool have been fixed.
  • Xcode Comparison View:
  • Comparison View’s vertical scrollbar now works when viewing added files. (19720720)
  • Swift Compiler:
  • @objc enums no longer cause the compiler to crash when used from another file. (19775284)
  • Fixed a use after free crash in lowercaseString and uppercaseString. (19801253)
  • Static stored properties can now be used in classes marked @objc or subclass NSObject, and are accessible from Objective-C. (19784053)
  • This expression now parses correctly, without need for parentheses: dict[someKey] as? Int ?? 5

New in Xcode 6.3 Build 6D520o Beta (Feb 10, 2015)

  • NEW FEATURES:
  • Swift 1.2:
  • Xcode 6.3 includes a new version of the Swift language. It includes a number of noteworthy changes to the language, detailed in the New in Xcode 6.3 beta section. Xcode 6.3 provides a migrator for moving your code to Swift 1.2.
  • Objective-C:
  • Xcode 6.3 includes enhancements that ease interoperability between Swift and Objective-C code.
  • Debugger Enhancements:
  • LLDB now includes a prototype for printf() by default when evaluating C/C++/Objective-C expressions. This improves the expression evaluation experience on arm64 devices, but may conflict with user-defined expression prefixes in .lldbinit that have a conflicting declaration of printf(). If you see errors during expression evaluation this may be the root cause. (19024779)
  • Apple LLVM Compiler Version 6.1:
  • Xcode 6.3 updates the Apple LLVM compiler to version 6.1.0. This new compiler includes full support for the C++14 language standard, a wide range of enhanced warning diagnostics, and new optimizations. Support for the arm64 architecture has been significantly revised to align with ARM’s implementation, where the most visible impact is that a few of the vector intrinsics have changed to match ARM’s specifications.
  • ARM64 Intrinsics Changes:
  • The argument ordering for the arm64 vfma/vfms lane intrinsics has changed. Since that change may not trigger compile-time errors but will break code at run-time, we are staging the transition to make it less risky. By default, the compiler will now warn about any use of those intrinsics and will retain the old behavior. As soon as possible, you should adopt the new behavior and define the USE_CORRECT_VFMA_INTRINSICS macro to 1 to inform the compiler of that. You can also define that macro to 0 to silence the warnings and keep the old behavior, but do not leave your code in that state for long, since we plan to remove support for the old behavior in a future release. (17964959)
  • FIXED ISSUES:
  • Xcode Interface Builder:
  • Views that have autoresizing masks and lie inside of UITableView, UICollectionView, or NSScrollView no longer get misaligned when opening the document. (18404033)
  • A detailed list of all bug fixes and improvements are available at http://adcdownload.apple.com//Developer_Tools/Xcode_6.3_beta/Xcode_6.3_beta_Release_Notes.pdf.

New in Xcode 6.2 Beta 5 (Feb 3, 2015)

  • NEW FEATURES:
  • Support for developing with WatchKit:
  • Xcode 6.2 includes the iOS 8.2 SDK, which includes the WatchKit framework for developing apps for Apple Watch.
  • Tools support for WatchKit includes:
  • Design tools for building Watch interfaces, glances, and notifications
  • Debugging and profiling support
  • Watch support in iOS Simulator for testing apps, glances, and notifications
  • ISSUES RESOLVED:
  • Xcode Interface Builder:
  • Interface Builder now supports a wider range of system font weights. (18092434)
  • Watch Projects:
  • Schemes for Watch Glances and Notifications are created automatically when creating a WatchKit app. (18899883)

New in Xcode 6.2 Beta 4 (Jan 13, 2015)

  • Xcode Interface Builder:
  • Xcode builds your WatchKit storyboard when it has multiple notification controllers. Your WatchKit app no longer needs a separate storyboard for each notification interface. (19295971)
  • iOS Simulator:
  • The iOS 8.1 and 7.1 simulators are supported with Xcode 6.2 beta 4. (19185513)

New in Xcode 6.2 Beta 3 (Dec 19, 2014)

  • Xcode 6.2 beta 3 is now available and addresses the following:
  • Git:
  • Available for: OS X Mavericks v10.9.4 or later
  • Impact: Synching with a malicious git repository may allow unexpected files to be added to the .git folder
  • Description: The checks involved in disallowed paths did not account for case insensitivity or unicode characters. This issue was addressed by adding additional checks.
  • CVE-ID: CVE-2014-9390 (Matt Mackall of Mercurial and Augie Fackler of Mercurial)

New in Xcode 6.1.1 (Dec 3, 2014)

  • Fixes common causes of SourceKit crashes when working with Swift
  • Additional bug fixes and stability improvements
  • Includes SDKs for OS X 10.10 Yosemite, OS X 10.9 Mavericks, and iOS 8.1

New in Xcode 6.1 (Oct 21, 2014)

  • Includes SDKs for OS X 10.10 Yosemite, OS X 10.9 Mavericks, and iOS 8.1.
  • Includes Swift support for both iOS and OS X projects:
  • Playgrounds for OS X Yosemite support AppKit and other Mac-specific frameworks
  • Swift REPL built into the Xcode debugger can inspect and manipulate your running app
  • Command line 'swift' tool runs your Swift scripts from the shell
  • Storyboards for OS X can design the flow of your complete Mac UI on a single canvas

New in Xcode 6.0.1 (Sep 19, 2014)

  • Includes SDKs for OS X 10.9 Mavericks and iOS 8.0:
  • Interface Builder renders your custom controls live in the design canvas
  • Preview editor displays your UI in alternate sizes, orientations, and languages
  • View debugging displays a 3D model of all view layers in your running app
  • SpriteKit level editor lets you design complete scenes for your games
  • Localization workflow imports & exports .XLIFF, and generates base strings from code
  • Performance tests run on OS X Server 3.2 alert you when a code change impacts speed
  • Instruments has a beautiful new interface that is easier to configure
  • New features specific to iOS:
  • Swift programming language with full Xcode integration for building iOS apps
  • Playgrounds for experimenting with your Swift code
  • SceneKit is now supported in iOS as well OS X
  • Extensions for iOS and can be added to your app bundle as a new target
  • Frameworks for iOS enable shared code among apps and extensions

New in Xcode 5.1.1 (Apr 11, 2014)

  • Fixes an issue that would reposition the Interface Builder canvas unexpectedly.
  • Improves the reliability of Quick Look within the debugger.
  • Fixes an issue where test cases would report as failed when in fact they had passed.
  • Fixes a rare code generation issue in the LLVM compiler.
  • Includes additional bug fixes and stability improvements.

New in Xcode 5.1 (Mar 11, 2014)

  • Adds new Auto Layout constraint inspector with support for all constraint types.
  • Adds Quick Look support in the debugger for custom object types.
  • Improves ability to resolve symbols in Instruments.
  • Updates the iOS standard architecture setting to include 64-bit.
  • Includes additional bug fixes and stability improvements.

New in Xcode 5.0.2 (Nov 12, 2013)

  • Includes SDKs for OS X 10.9 Mavericks, OS X 10.8 Mountain Lion, and iOS 7.
  • Fixes occasional hangs in iOS Simulator during app install, or when debugging.
  • Fixes a crash that could occur while debugging on devices running iOS 6.
  • Additional bug fixes and stability improvements.

New in Xcode 5.0.1 (Oct 23, 2013)

  • Includes SDKs for OS X 10.9 Mavericks, OS X 10.8 Mountain Lion, and iOS 7.
  • New features for OS X Mavericks:
  • Continuous integration bots build and test your iOS and OS X apps on OS X Server.
  • Source Control menu creates new remote Git repositories on Mac servers.
  • Debug Gauge for energy use displays a live graph of your app’s power consumption.

New in Xcode 5.0 (Sep 19, 2013)

  • Includes SDKs for OS X 10.8 Mountain Lion and iOS 7.
  • LLVM compiler builds 64-bit apps for iOS 7.
  • Automatic Configuration enables services like iCloud and Game Center with one click.
  • Test Navigator helps you quickly add, edit, and run unit tests.
  • Test Assistants display tests and code side-by-side for test driven development.
  • Auto Layout in IB can generate constraints automatically, or allow free-form design.
  • Preview Assistant demonstrates your UI in portrait or landscape, for iOS 6 or iOS 7.
  • Asset Catalog organizes all your project’s images in a single .xcassets archive.
  • Debug Gauges show CPU, memory, iCloud, and OpenGL ES usage at a glance.
  • Source Control top-level menu enables context sensitive branching and merging.
  • Modules build setting speeds compile times, and enables auto-linking system frameworks.

New in Xcode 4.6.3 (Jun 14, 2013)

  • Fixes an issue where debugging in the iOS Simulator could hang on OS X 10.8.4.

New in Xcode 4.6.2 (Apr 16, 2013)

  • Improves LLDB performance for debugging Objective-C code.
  • Fixes an issue where the crash log database could grow very large.
  • Additional bug fixes and stability improvements.

New in Xcode 4.6.1 (Mar 15, 2013)

  • Updates the OS X SDK to support OS X Mountain Lion version 10.8.3.
  • Fixes an issue where ARC-enabled apps would not launch on OS X 10.6 Snow Leopard.
  • Fixes a performance regression in the Analyze operation.

New in Xcode 4.6 (Jan 29, 2013)

  • Includes SDKs for OS X 10.8 Mountain Lion and iOS 6.1.
  • Code completion heuristics are more accurate, and use an optimized default data set.
  • New compiler warnings help identify potential bugs when using ARC and weak references.
  • C++11 support for ‘user defined literals’ and ‘unrestricted unions’ features.
  • Debugger can inspect elements within NSArray or NSDictionary objects.
  • Analyze now performs deeper cross-function static analysis of Objective-C and C++ code.
  • The number of indexing passes is reduced due to improved dependency checking.
  • Additional bug fixes and stability improvements.

New in Xcode 4.5.2 (Nov 1, 2012)

  • Support for iPad mini and iPad with Retina display (4th generation).
  • Additional bug fixes and stability improvements.

New in Xcode 4.5.1 (Oct 4, 2012)

  • Fixes an issue where the debug console failed to display some text.
  • Improves stability when targeting the iOS Simulator.
  • Additional bug fixes and stability improvements.

New in Xcode 4.5 (Sep 19, 2012)

  • SDKs for OS X 10.8 Mountain Lion and iOS 6.
  • Auto Layout now supported on both OS X and iOS.
  • New localization workflow can share a single base .xib or .storyboard file for multiple locales.
  • OpenGL debugger for iOS analyzes performance and suggests improvements.
  • Debugger watchpoints can be set when running on a connected iOS device.
  • Objective-C @synthesize command is generated by default when using properties.
  • Objective-C adds literal syntax for numbers, arrays, dictionaries, and expressions.
  • Xcode 4.5 runs on both OS X Lion and OS X Mountain Lion.
  • Enhanced for the MacBook Pro with Retina display.
  • Additional bug fixes and stability improvements.

New in Xcode 4.4.1 (Aug 8, 2012)

  • This update runs on both OS X Lion and OS X Mountain Lion.

New in Xcode 4.4 (Jul 25, 2012)

  • SDKs for OS X 10.8 Mountain Lion and iOS 5.1.
  • Enhanced for the MacBook Pro with Retina display.
  • Code completion persists your selections to give more accurate suggestions.
  • Objective-C @synthesize command is generated by default when using properties.
  • Objective-C adds literal syntax for numbers, arrays, dictionaries, and expressions when developing for OS X.
  • Apple LLVM compiler supports additional C++11 features, including lambdas.
  • Assistant editor tracks caller or callee for the current selection.
  • New localization workflow can share a single base .xib file for multiple locales on OS X.
  • Source control can commit individually selected changes.
  • ARC migration tool converts both retain/release and garbage collected code.
  • Fixes an issue where code completion could fail, requiring the user to delete derived data.
  • Additional bug fixes and stability improvements.

New in Xcode 4.3.3 (Jun 12, 2012)

  • Includes iOS 5.1 SDK and an updated SDK for OS X Lion.
  • Provides additional bug fixes and stability improvements.

New in Xcode 4.3.2 (Mar 22, 2012)

  • Includes SDKs for Mac OS X 10.7 Lion and iOS 5.1
  • New code signing workflow supports signing OS X apps with Developer ID
  • Adds installation of command-line tools to the Downloads preference pane
  • Open Developer Tool menu launches Instruments, File Merge, and other tools
  • ARC migration tool converts both retain/release and garbage collected code
  • Additional bug fixes and stability improvements

New in Xcode 4.3.1 (Mar 7, 2012)

  • Xcode is now distributed as an application, rather than as an installer. This change enables Xcode to be updated directly from the Mac App Store.
  • Includes SDKs for Mac OS X 10.7 Lion and iOS 5.1
  • New code signing workflow supports signing OS X apps with Developer ID
  • Adds installation of command-line tools to the Downloads preference pane
  • Open Developer Tool menu launches Instruments, File Merge, and other tools
  • ARC migration tool converts both retain/release and garbage collected code
  • Additional bug fixes and stability improvements

New in Xcode 4.3 (Feb 16, 2012)

  • Xcode is now distributed as an application, rather than as an installer. This change enables Xcode to be updated directly from the Mac App Store.
  • Xcode 4.3 also has a new "Downloads" preference pane that lets you install optional components, such as command line tools and previous iOS Simulators.
  • Includes the OS X 10.7.3 and iOS 5 SDKs.
  • New code signing workflow supports signing OS X apps with Developer ID.
  • Adds installation of command-line tools to the Downloads preference pane.
  • Open Developer Tool menu launches Instruments, File Merge, and other tools.
  • ARC migration tool converts both retain/release and garbage collected code.
  • Additional bug fixes and stability improvements.

New in Xcode 4.2.1 (Nov 17, 2011)

  • Fixes an issue where the "Convert to Objective-C ARC" operation would not complete.
  • Resolves a problem that resulted in no visible developer profiles in the Organizer.
  • Corrects an erroneous locked file dialog appearing in the documentation window.

New in Xcode 4.2 (Oct 12, 2011)

  • Includes SDKs for Mac OS X 10.7 Lion and iOS 5
  • Storyboards let you design multiple iOS screens, and define the segues among them
  • Automatic Reference Counting (ARC) saves you from manually managing retain/release
  • iCloud entitlements are automatically enabled for Mac and iOS apps
  • OpenGL ES Debugger graphically analyzes your OpenGL scene directly within the IDE
  • Apple LLVM compiler supports C++11 features and the LLVM libc++ standard library
  • Older iOS Simulators and device debugging symbols are downloaded on-demand
  • Enhancements and fixes in previous Xcode updates:
  • Interface Builder support for Auto Layout and new Aqua controls such as NSPopover
  • Full screen support in workspace, project, and organizer windows
  • Project editor can validate and resolve out of date build settings
  • Behaviors can be customized and assigned to unique key bindings
  • Source control enhancements to pushing, pulling, and management of remote servers
  • Assistant editor support for display of generated assembly and preprocessed output
  • Additional bug fixes and stability improvements

New in Xcode 4.1.1 (Aug 5, 2011)

  • This is a delta update to Install Xcode.app that fixes the "Installation Alert" to quit iTunes. You do not need to re-run the installer if you already have Xcode 4.1 for Lion successfully installed, as the included tools are unchanged in this update.

New in Xcode 4.1 (Jul 21, 2011)

  • Includes SDKs for OS X Lion and iOS 4.3
  • Interface Builder support for Auto Layout and new Aqua controls such as NSPopover
  • Full screen support in workspace, project, and organizer windows
  • Project modernization to identify and resolve out of date build settings
  • Behaviors can be customized and assigned to unique key bindings
  • Source control enhancements to pushing, pulling, and management of remote servers
  • Assistant editor support for display of generated assembly and preprocessed output
  • Additional bug fixes and stability improvements

New in Xcode 4.0.2 (Apr 15, 2011)

  • Updated to support iOS 4.3.2
  • Fixed a bug in the iOS Simulator when running OpenGL ES apps
  • Fixed a bug handling some Core Data mapping models
  • Fixed a bug in LLVM compiler 2.0 that could cause apps to crash on iOS devices
  • Additional bug fixes and stability improvements

New in Xcode 4.0.1 (Mar 25, 2011)

  • Improved Assistant editor logic when switching among different file types
  • Fixed a bug in "Install Xcode.app" that hangs at 99% complete, never finishing
  • Fixed a bug that prevented indexing of some projects
  • Fixed a bug related to nil settings in the Core Data model editor
  • Fixed a bug that prevented automatic download of iOS documentation
  • Fixed a bug in LLVM GCC 4.2 and LLVM compiler 2.0 for iOS projects
  • Additional bug fixes and stability improvements

New in Xcode 4.0 (Mar 9, 2011)

  • Enhancements:
  • General:
  • If Xcode or xcodebuild fail to launch:
  • Hold down Shift while launching Xcode
  • Use the xcodebuild -clearPlugInCache option. 9013457
  • Editing Nib Files:
  • Building products that require Interface Builder 3 plug-ins may fail because the ibtool command-line tool is unable to locate the required ibplugin plug-in.
  • If you have the Xcode 3 toolset installed on your computer, load the plug-in using the Interface Builder 3 preferences window. Otherwise, enter this command in Terminal:
  • defaults write com.apple.InterfaceBuilder3 "IBKnownPluginPaths.3.2.7" -dict-add "" ""
  • 8920581
  • Changes:
  • General:
  • When you use the the Mac OS X 10.6 SDK to develop products that are intended to run on Mac OS X v10.5 and depend on the OpenSSL library, they don’t run correctly on Mac OS X v10.5.
  • Use Xcode 3 and the Mac OS X 10.5 SDK to develop products that depend on OpenSSL and must run on Mac OS X v10.5. 8992092
  • Building: xcodebuild:
  • The xcodebuild -activetarget option is not supported. 8361726
  • Performance Measurement and Analysis:
  • MallocDebug is replaced by the Allocations and Leaks instruments, and the libgmalloc (GuardMalloc) and leaks command-line tools. 4388187
  • New Issues:
  • Source Control and Snapshots:
  • Git: Xcode doesn’t commit pull or merge source control operations on conflicted binary files when using Git. Instead, a dialog appears indicating that Git failed to merge a binary file.
  • After the dialog appears, finish the operation by entering this command in Terminal:
  • git commit
  • 9020224
  • Subversion: Xcode doesn’t show Subversion-based properties. When you compare versions of a file and there are no content changes between the versions but there are differences in their properties, Xcode indicates that there are changes between the revisions but has no way of indicating that the changes are in properties.
  • When there are no property conflicts, Xcode chooses the server properties.
  • When there are conflicts, Xcode chooses the local properties. 9034171
  • Performance Measurement and Analysis:
  • The iprofiler command-line tool doesn’t collect data. 9007292
  • The iprofile command-line tool doesn’t work correctly with Instruments trace files based on the Dispatch and Multicore templates. 9050653
  • A system trace using the instruments command-line tool doesn’t work. 8763771
  • The User Interface instrument for Mac OS X doesn’t record keystrokes correctly. 8967769
  • When using an Instruments trace file based on the GC Analysis template, the Object Graph instrument may be unable to attach to the target, displaying the message “Unable to attach to target” in the track pane.
  • Use the GC Monitor template instead. 8735515
  • Accessing Help and Documentation: Clicking the Help icon in Instruments may not result in documentation being displayed.
  • Search for “Instruments” in the Xcode documentation organizer. 9045280
  • Accessing Help and Documentation:
  • Xcode does not automatically download and install the iOS 4.3 Library.
  • Choose Xcode > Preferences.
  • Click Documentation.
  • The iOS 4.3 Library is dimmed in the list, indicating that the library is available for download but not installed in your Mac.
  • Click the Get button next to iOS 4.3 Library to download and install it.
  • To ensure that subsequent updates to the iOS 4.3 Library are downloaded and installed automatically, select the “Check for and install updates automatically” option. 9089398

New in Xcode 3.2.5 (Jan 21, 2011)

  • Xcode 3.2.5 supports packaging and submission to the App Store for both Mac and iOS
  • iOS SDK 4.2 now supports iPhone, iPod touch, and iPad
  • Setting Base SDK to “Latest iOS” uses the most recent SDK, even after updates
  • iOS SDK 4.2 adds support for printing from UIKit
  • Auto-provisioning of new devices - click “Use for Development” to add device to portal
  • Use “Export Developer Profile” to backup developer certificates and profiles
  • Menu item: “Upgrade Current Target for iPad...” to convert to Universal app
  • Base SDK should be set to “Latest iOS” !
  • iOS Deployment Target set to the minimum iOS version you wish to support !
  • Targeted Device Family should be set to iPhone/iPad
  • New Project template for iOS “Window-based Application” can create Universal apps

New in Xcode 3.2.4 (Sep 9, 2010)

  • Workflow:
  • Changing English.lproj to en.lproj no longer prevents Xcode from adding localizations. 8358684
  • Data Modeling:
  • The migration-model editor was incorrectly identifying data-model file packages as directories. 8358743
  • Building:
  • Xcode no longer incorrectly sets DEVELOPMENT_LANGUAGE to "English" in Run Script build phases. This used to happen even when the CFBundleDevelopmentRegion key in the target’s Info.plist file is set to a different value, such as "en". 8358625Added new build setting: LOCALIZED_RESOURCES_FOLDER_PATH. This build setting specifies the directory that contains the product’s localized resources. 8358677Better processing of symbolic links when creating composite SDKs. 8358689Added GCC_ENABLE_EXCEPTIONS (Enable Exceptions) build setting to build-settings editor when using GCC 4.2. 8358771
  • Debugging:
  • Xcode couldn’t create a dSym file when using GCC 4.0 with the Dwarf with dSym build setting turned on. 8358753

New in Xcode 3.2.3 (Jun 22, 2010)

  • General:
  • Supported Configurations:
  • Xcode 3.2.3 runs on Mac OS X v10.6 Snow Leopard on a Mac with an Intel processor. It does not install or run on earlier versions of Mac OS X. Xcode supports universal development for Mac OS X 10.4 Tiger and Mac OS X 10.5 Leopard using the Mac OS X SDK support; it does not support development for Mac OS X v10.3 or earlier.
  • Xcode Installation:
  • The Xcode tools by default are installed into the /Developer directory, but you may choose to install them (or move them after installation) to any other directory on any volume. The tools will work normally so long as they remain in their designated locations relative to the top-level directory, even if it is not named Developer and located on the startup volume.
  • This flexibility allows you to have multiple versions of the Xcode toolset installed on the same computer but running independently. Xcode uses the SDKs, build tools, and auxiliary applications from the same directory it is launched from whenever possible, rather than those from the root system. To refer to those files in your own projects, use the relative-to-Xcode-folder reference style, whose root path is $(DEVELOPER_DIR).
  • The Xcode toolset installer also installs the standard system development tools and interfaces into /usr, so conventional makefile-based and config-based builds operate correctly. Use the xcode-select command-line tool to set the default toolset for command-line builds.
  • Project File Format Compatibility and Versioning:
  • Xcode 3.2.3 reads and builds the targets of project files created in Xcode 2.1 through 3.2.2, and automatically upgrades project files created in Xcode 1.5 through 2.0. Xcode 3.2.3 does not reliably read project files created in Xcode 1.2 or earlier, or Project Builder project files. Open and upgrade these project files in Xcode 2.5 before opening them with Xcode 3.2.3
  • Note: It is strongly recommended that, when converting pre–Xcode 2.1 project files to Xcode 2.2 and later, you also upgrade all the project’s targets to native targets using the item in the Project menu. Many Xcode features, including support for building universal Binaries, are not supported for non-native (JAM-based) targets.
  • Xcode 3.2.3 doesn’t import CodeWarrior project files. Install Xcode 2.5 and CodeWarrior Pro version 8.3 and follow the documentation in Porting CodeWarrior Projects to Xcode.
  • Project files opened and edited with Xcode 3.2.3 are generally compatible with Xcode 3.2.x, Xcode 3.1.x, Xcode 3.0, and Xcode 2.5; this means that project files you create or open with Xcode 3.2.3 can always be opened and built with Xcode 2.5 through 3.1. If you use a particular feature that would cause your project to fail to build on an earlier version of Xcode, you see a Compatibility Notice in the bottom-right corner of your project window. Click Show Conflicts in the Project Info window to investigate and resolve the compatibility issue.
  • Enhancements and Bug Fixes in Xcode 3.2.3
  • Xcode 3.2.3 has a number of features, enhancements, and bug fixes over Xcode 3.2.2:
  • iPhone OS Development:
  • When developing generic applications (applications that don’t require special features, such as push notifications or in-app purchases), you can create, download, and install provisioning profiles and signing certificates in the Xcode Organizer, without having to directly log in to the iPhone Provisioning Portal.
  • llvm-gcc4.2 and LLVM Compiler 1.5 (“clang”) are now supported compilers.
  • Added support for blocks.
  • Support for iPhone OS 4.0 features has been added to Property List Editor.
  • In previous versions of Xcode, iPhone apps that created large crash or diagnostic logs would cause Xcode to use excessive amounts of processor time downloading and symbolicating the logs from the device. This process has been optimized in Xcode 3.2.3. 7367900
  • General:
  • Most of the functionality of the Active SDK section of the Overview pop-up menu in the Project window toolbar has been removed because it provided limited utility to Mac OS X developers and was confusing to iPhone OS developers. For iPhone OS development, instead of switching the active SDK in the Overview menu, you should should set the Base SDK for the project or target to the latest one you want your application to use (typically the latest SDK. You should also set the iPhone OS Deployment Target to the earliest version of iPhone OS on which you want your application to run. 7885934
  • For iPhone OS development, use the Overview menu to:
  • Specify whether you want your application to run on a device or in the simulation environment.
  • Specify the device or the iPhone Simulator version on which you want the application to run (in the Active Executable section of the menu).
  • Some projects experienced loss of responsiveness in the user interface while indexing is taking place. This has been significantly improved. 7704873
  • Downloading documentation sets could get caught in an infinite loop under some circumstances. This has been fixed. 6945747
  • The dialog to add frameworks or libraries to a target presents the available items in alphabetical and case-insensitive order. 7899706
  • Text Editing:
  • The first developer release of Xcode 3.2.3 miscalculated the width of tab characters for some fonts. This is fixed in later seed releases. 7786402
  • Auto-completing a method signature that takes a block with no parameters no longer inserts a nonsensical void argument. 7549624
  • Autocompleting a protocol definition now correctly adds the required angle brackets. 7067616
  • A bug where certain superclass properties would not be autocompleted has been fixed. 7045480
  • Commenting out a line no longer indents the line as if the line were a new actual comment. 7202239
  • When editing Info.plist files, the NSKeyEquivalent key default value is now correct. 7886355
  • Building:
  • The first developer release of Xcode 3.2.3 was missing C++ libraries for gcc-4.2 in the iPhone 3.0, 3.1, and 3.2 SDKs, so C++ and Objective-C++ code would fail at link time. These libraries are present in later versions of Xcode 3.2.3.
  • The Clang compiler has been updated to version 1.5 and renamed “LLVM compiler 1.5.”
  • Distributed Builds now uses the correct syntax for using all available cores on remote machines, and has corrected behavior for invoking or falling back to localhost. This should result in faster and more reliable builds with Distributed Builds. 7833824, 7831743, 7691990, 7831765, 7831781
  • Static library (.a) files are no longer code signed. 7869388
  • Debugging:
  • A bug that caused remote debugging to fail when the executable name is different than the target name has been fixed. 7506748
  • A case where breakpoints in a shared library would not be hit has been fixed. 7212899
  • Copying text from the backtrace and/or console now results in exactly one copy of the text on the pasteboard, not zero or two. 7254118, 7531435

New in Xcode 3.2.2 (Apr 6, 2010)

  • Xcode 3.2.2 adds support for developing iPad and Universal iPad/iPhone apps
  • New menu option: Project -> Upgrade Current Target for iPad...
  • To configure Universal apps that run on both iPad and iPhone, in Build Settings:
  • - set Base SDK in the Architectures section to “iPhone SDK 3.2” - set iPhone OS Deployment Target to iPhone OS 3.1.3 or earlier
  • For iPad-only development, use iPhone SDK 3.2 and target iPhone OS 3.2
  • For iPhone-only, use iPhone SDK 3.1.3 and target iPhone OS 3.1.3 or earlier
  • Be sure to set Targeted Device Family to iPad, iPhone, or iPhone/iPad
  • The assistant interface has been completely revamped, making it easier to create "New Project", "New Target", and "New File" resources. This release of Xcode also adds new assistant templates for both Mac OS X and iPhone OS applications.
  • New optional LLVM compiler uses the much faster Clang front-end parser coupled with the LLVM back-end compiler for fast compiles and fast executable code. The LLVM GCC 4.2 compiler benefits from the improved back-end code generation of LLVM, but uses the GCC 4.2 parser to maintain backward compatibility and add C++ support. The LLVM compiler will fall back to using LLVM GCC 4.2 when it encounters C++ code.
  • New build menu item “Build and Analyze” will generate build warnings using the new static analyzer, identifying potential coding mistakes by analyzing most possible code paths. These build warnings can also be viewed using the new message bubbles which, when clicked, will display arrows that walk through the steps that can create the coding error.
  • New, less-obtrusive message bubbles stay right-justified and take up less room within the editor window, without re-flowing the source code.
  • New build results window persists results so that old warnings are not lost, allowing a quit and re-launch of Xcode to more easily return to the previous state.
  • New “Quick Help” feature (option-double-click on an API) gives instant access to the most common documentation information, replacing the Research Assistant. Quick Help will disappear when focus is changed, or the window may be dragged to a more docked position on the screen.
  • Documentation is now downloaded from the web by default after installation, and will be automatically updated in the background. If you do not wish to download the documentation to save disk space, you may uncheck the the documentation at install time and the docs will instead be viewed from an online server.
  • New Developer Documentation window presents search results along the side by category, making it easier to navigate the search results.
  • A new Overview toolbar item lets you see and set the project's active Target, Configuration, Executable, Architecture, and SDK with a single control.
  • Setting Architectures and SDKs are now done with provided pop-up lists rather than manually entered strings or long paths.
  • It is now easier to add known frameworks to your project
  • The source code editor now allows you to "Edit All In Scope", to edit all instances of a symbol in a particular scope.
  • Build settings can be set for any combination of architecture and SDK. GCC 4.2 is the default system compiler for the 10.6 SDK Using the LLVM compiler requires the 10.6 SDK Using LLVM GCC or GCC 4.2 requires the 10.5 SDK or 10.6 SDK

New in Xcode 3.2.1 (Nov 2, 2009)

  • A bug that prevented Instruments and Shark from showing symbolic data (especially in the iPhone Simulator) has been fixed. 7214774
  • Building a Unit Test target would cause Xcode to hang and/or crash when the system clock was set to a time zone that contained the digit “5.” This affected UTC-5 (Central Daylight Time) and UTC+5 (Pakistan Standard Time) primarily, and has been fixed. Related bugs that suppressed the display of certain Unit Test results have also been fixed. 7047278, 7028675
  • Core Data mapping models could be written in a form incompatible with earlier versions of Xcode that would cause Xcode 3.1.4 and earlier to crash when reading them. This has been fixed. 7052986
  • Uncaught Exception crashes in the Source Code Editor have been fixed. 6978943
  • A problem in Instruments where the Instruments hot keys would not function after applying the 10.6.1 update has been fixed. 7213315
  • Various code generation errors and crashes have been fixed in gcc-4.2, gcc-llvm4.2, and the Clang 1.0 compilers.
  • Setting breakpoints in Objective-C code now works when running 64-bit executables. 7226672
  • Duplicating a top-level item in an Interface Builder file now sets up the connections properly, rather than leaving them wired to the same objects as the original was. 7163617
  • Nib files imported from IB 2.x format are no longer set to Development Target of IB 3.2 by default, and will again be useable in older versions of Interface Builder. 7213769
  • Problems reading certain Core Data models that would prevent some Xcode projects from opening in Xcode 3.2 have been fixed in Xcode 3.2.1. 7158725
  • Two infrequent crashes in the Documentation Viewer have been fixed. 6860278, 6958406
  • Two infrequent crashes while debugging have been fixed. 7156562, 7034038
  • Using Add Existing Framework in an iPhone project with a Group selected now shows the iPhone SDK frameworks instead of Mac OS X or no frameworks. 7239455
  • Instruments templates in older iPhone SDKs have been updated to work with the new Instruments. 7200260
  • An erroneous recursive symlink in the Mac OS X 10.5 SDK has been removed. This caused many things, including Xcode, to hang or crash when attempting to enumerate the contents of the 10.5 SDK. 7105297

New in Xcode 3.1.4 (Sep 12, 2009)

  • Provides additional GCC and LLVM compiler options, general bug fixes, and must be installed on Leopard, Mac OS X 10.5.0 and higher.

New in Xcode 3.1.3 (Jun 19, 2009)

  • SDK support for targeting non-Mac OS X platforms, including iPhone OS SDK.
  • GCC 4.2 & LLVM GCC 4.2 optional compilers for use with Mac OS X 10.5 SDK
  • Updated assistants to create new projects, targets, and source files
  • Toolbar uses a single popup to choose platform, target, and debug/release
  • Integrated SCM support now works with Subversion 1.5
  • New in Xcode IDE:
  • The assistant interface has been completely revamped, making it easier to create "New Project", "New Target", and "New File" resources. This release of Xcode also adds new assistant templates for both Mac OS X and iPhone OS applications.
  • A new Overview toolbar item lets you see and set the project's active Target, Configuration, Executable, Architecture, and SDK with a single control.
  • It is now possible to set a global "override" SDK as the Active SDK, making it easy to test the build of your entire project against a different platform.
  • New interface shortcuts have been added to the Build Setting inspectors
  • making it easy to set the desired compiler, architectures, and SDKs
  • You can now add Libraries and Frameworks directly into the Target window and relate them to the project's SDK.
  • The Xcode UI now allows you to designate a library or framework as weak-
  • linked, to support building with newer SDKs while targeting older OS versions.
  • New "Edit all in scope" option within the Xcode source editor makes it easy to update all instances of the selected symbol within the current scope of code.
  • You can now have conditional build settings assigned for any combination of architecture and SDK.
  • LLVM GCC 4.2 is a new optional compiler based on the LLVM.org open source project. LLVM GCC 4.2 provides an LLVM-based back-end optimizer using the GCC 4.2 front-end parser. This compiler is both source and binary compatible with GCC 4.2 and requires the Mac OS X 10.5 SDK or "Current OS" SDK.
  • GCC 4.2 is a new optional compiler with stricter C and C++ language
  • enforcement, security enhancements, performance optimizations, and bug fixes over GCC 4.0. Requires the Mac OS X 10.5 SDK or "Current OS" SDK
  • New in Interface Builder 3.1
  • New drag & drop functionality allows easily re-parenting objects with the normal drag gesture
  • The document outline view has been enhanced to support full drag re-ordering.
  • A new string table interface allows localizers to make quick text changes across documents.
  • Generates XIB files that are more diff friendly while retaining full backwards compatibility with Interface Builder 3.0.
  • Now supports previewing image resource content in Carbon controls.
  • New in Dashcode
  • You can now use Dashcode to create web applications optimized for the
  • iPhone, as well as Dashboard widgets.

New in Xcode 3.1.2 (Nov 25, 2008)

  • Version 3.1.2 is an update release of the developer tools for Mac OS X.
  • This release provides additional GCC and LLVM compiler options, general bug fixes, and must be installed on Leopard, Mac OS X 10.5.0 and higher.
  • Xcode defaults to upgrading an existing Xcode installation, but may optionally be installed along side existing Xcode installations.

New in Xcode 3.1.1 (Oct 22, 2008)

  • SDK support for targeting non-Mac OS X platforms, including iPhone OS SDK.
  • GCC 4.2 & LLVM GCC 4.2 optional compilers for use with Mac OS X 10.5 SDK
  • Updated assistants to create new projects, targets, and source files
  • Toolbar uses a single popup to choose platform, target, and debug/release
  • Integrated SCM support now works with Subversion 1.5

New in Xcode 3.1 (Jul 14, 2008)

  • Xcode 3.1 is an update release of the developer tools for Mac OS X, and is the same version included with the iPhone SDK.
  • This release provides additional GCC and LLVM compiler options, general bug fixes, and must be installed on Leopard, Mac OS X 10.5.0 and higher.
  • Xcode 3.1 defaults to upgrading Xcode 3.0, but may optionally be installed along side existing Xcode installations.