Apple Xcode Changelog

New in version 7 Build 7A165t Beta 4

July 22nd, 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 version 6.4 Build 6E35b (July 1st, 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 version 7 Build 7A121l Beta 2 (June 23rd, 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 version 6.4 Build 6E31c Beta 4 (June 10th, 2015)

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

New in version 7 Build 7A120f Beta 1 (June 9th, 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 version 6.3.2 Build 6D2105 (May 19th, 2015)

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

New in version 6.4 Build 6E23 Beta 3 (May 12th, 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 version 6.3.2 Build 6D2102 GM (May 9th, 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 version 6.4 Build 6E14 Beta 2 (April 28th, 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 version 6.3.1 Build 6D1002 (April 22nd, 2015)

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

New in version 6.4 Build 6E7 Beta (April 14th, 2015)

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

New in version 6.3 Build 6D570 (April 9th, 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 version 6.3 Build 6D554n Beta 4 (March 25th, 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 version 6.3 Build 6D543q Beta 3 (March 12th, 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 version 6.2 Build 6C131e (March 10th, 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 version 6.3 Build 6D532l Beta 2 (February 24th, 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 version 6.3 Build 6D520o Beta (February 10th, 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 version 6.2 Beta 5 (February 3rd, 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 version 6.2 Beta 4 (January 13th, 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 version 6.2 Beta 3 (December 19th, 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 version 6.1.1 (December 3rd, 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 version 6.1 (October 21st, 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 version 6.0.1 (September 19th, 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 version 5.1.1 (April 11th, 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 version 5.1 (March 11th, 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 version 5.0.2 (November 12th, 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 version 5.0.1 (October 23rd, 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 version 5.0 (September 19th, 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 version 4.6.3 (June 14th, 2013)

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

New in version 4.6.2 (April 16th, 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 version 4.6.1 (March 15th, 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 version 4.6 (January 29th, 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 version 4.5.2 (November 1st, 2012)

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

New in version 4.5.1 (October 4th, 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 version 4.5 (September 19th, 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 version 4.4.1 (August 8th, 2012)

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

New in version 4.4 (July 25th, 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 version 4.3.3 (June 12th, 2012)

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

New in version 4.3.2 (March 22nd, 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 version 4.3.1 (March 7th, 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 version 4.3 (February 16th, 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 version 4.2.1 (November 17th, 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 version 4.2 (October 12th, 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 version 4.1.1 (August 5th, 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 version 4.1 (July 21st, 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 version 4.0.2 (April 15th, 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 version 4.0.1 (March 25th, 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 version 4.0 (March 9th, 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 version 3.2.5 (January 21st, 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 version 3.2.4 (September 9th, 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 version 3.2.3 (June 22nd, 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 version 3.2.2 (April 6th, 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 version 3.2.1 (November 2nd, 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 version 3.1.4 (September 12th, 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 version 3.1.3 (June 19th, 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 version 3.1.2 (November 25th, 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 version 3.1.1 (October 22nd, 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 version 3.1 (July 14th, 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.