Xcode is
Apple's
integrated development environment (IDE) for
macOS, used to develop software for macOS,
iOS,
iPadOS,
watchOS, and
tvOS. It was initially released in late 2003; the latest stable release is version 14.2, released on December 13, 2022, via the
Mac App Store with
macOS Monterey.
The software suite is offered free of charge. Registered developers can download preview releases and prior versions of the suite through the
Apple Developer website. Xcode includes command-line tools which enable
UNIX-style development via the
Terminal app in macOS. They can also be downloaded and installed without the
GUI.
Major features
Xcode supports
source code for the
programming languages:
C,
C++,
Objective-C,
Objective-C++,
Java,
AppleScript,
Python,
Ruby,
ResEdit (Rez), and
Swift, with a variety of programming models, including but not limited to
Cocoa
Cocoa may refer to:
Chocolate
* Chocolate
* ''Theobroma cacao'', the cocoa tree
* Cocoa bean, seed of ''Theobroma cacao''
* Chocolate liquor, or cocoa liquor, pure, liquid chocolate extracted from the cocoa bean, including both cocoa butter and ...
,
Carbon, and Java. Third parties have added support for
GNU Pascal,
Free Pascal,
Ada,
C#,
Go,
Perl, and
D.
Xcode can build ''
fat binary'' (
universal binary) files containing code for multiple architectures with the
Mach-O executable format. These helped ease the transitions from
32-bit
In computer architecture, 32-bit computing refers to computer systems with a processor, memory, and other major system components that operate on data in 32-bit units. Compared to smaller bit widths, 32-bit computers can perform large calculation ...
PowerPC
PowerPC (with the backronym Performance Optimization With Enhanced RISC – Performance Computing, sometimes abbreviated as PPC) is a reduced instruction set computer (RISC) instruction set architecture (ISA) created by the 1991 Apple Inc., App ...
to
64-bit PowerPC, from PowerPC to
Intel x86, from 32-bit to 64-bit Intel, and from x86 to
Apple silicon by allowing developers to distribute a single application to users and letting the operating system automatically choose the appropriate architecture at runtime. Using the
iOS SDK, tvOS SDK, and watchOS SDK, Xcode can also be used to compile and debug applications for
iOS,
iPadOS,
tvOS, and
watchOS.
Xcode includes the GUI tool
Instruments
Instrument may refer to:
Science and technology
* Flight instruments, the devices used to measure the speed, altitude, and pertinent flight angles of various kinds of aircraft
* Laboratory equipment, the measuring tools used in a scientific l ...
, which runs atop a dynamic tracing framework,
DTrace, created by
Sun Microsystems
Sun Microsystems, Inc. (Sun for short) was an American technology company that sold computers, computer components, software, and information technology services and created the Java programming language, the Solaris operating system, ZFS, the ...
and released as part of
OpenSolaris
OpenSolaris () is a discontinued open-source computer operating system based on Solaris and created by Sun Microsystems. It was also, perhaps confusingly, the name of a project initiated by Sun to build a developer and user community around th ...
.
Xcode also integrates built-in support for
source code management
In software engineering, version control (also known as revision control, source control, or source code management) is a class of systems responsible for managing changes to computer programs, documents, large web sites, or other collections o ...
using the
Git version control system and protocol, allowing the user to create and
clone
Clone or Clones or Cloning or Cloned or The Clone may refer to:
Places
* Clones, County Fermanagh
* Clones, County Monaghan, a town in Ireland
Biology
* Clone (B-cell), a lymphocyte clone, the massive presence of which may indicate a pathologi ...
Git
repositories (which can be hosted on source code repository hosting sites such as
GitHub,
Bitbucket, and
Perforce, or self-hosted using open-source software such as
GitLab), and to
commit,
push
Push may refer to:
Music
* Mike Dierickx (born 1973), a Belgian producer also known as Push
Albums
* ''Push'' (Bros album), 1988
* ''Push'' (Gruntruck album), 1992
* ''Push'' (Jacky Terrasson album), 2010
Songs
* "Push" (Enrique Iglesias s ...
, and
pull changes, all from within Xcode, automating tasks that would traditionally be performed by using Git from the
command line.
Composition
The main application of the suite is the
integrated development environment (IDE), also named Xcode. The Xcode suite includes most of Apple's developer documentation, and built-in
Interface Builder, an application used to construct
graphical user interfaces.
Up to Xcode 4.1, the Xcode suite included a modified version of the
GNU Compiler Collection. In Xcode 3.1 up to Xcode 4.6.3, it included the LLVM-GCC compiler, with front ends from the
GNU Compiler Collection and a code generator based on
LLVM. In Xcode 3.2 and later, it included the
Clang C/C++/Objective-C compiler, with newly-written front ends and a code generator based on LLVM, and the Clang
static analyzer. Starting with Xcode 4.2, the Clang compiler became the default compiler,
Starting with Xcode 5.0, Clang was the only compiler provided.
Up to Xcode 4.6.3, the Xcode suite used the
GNU Debugger (GDB) as the
back-end for the IDE's
debugger. Starting with Xcode 4.3, the
LLDB debugger was also provided; starting with Xcode 4.5 LLDB replaced GDB as the default back-end for the IDE's debugger.
Starting with Xcode 5.0, GDB was no longer supplied.
Removed features
Formerly, Xcode supported distributing a product build process over multiple systems. One technology involved was named ''Shared Workgroup Build'', which used the
Bonjour protocol
Bonjour is Apple's implementation of zero-configuration networking (zeroconf), a group of technologies that includes service discovery, address assignment, and hostname resolution. Bonjour locates devices such as printers, other computers, and ...
to automatically discover systems providing compiler services, and a modified version of the free software product
distcc
In software development, distcc is a tool for speeding up compilation of source code by using distributed computing over a computer network. With the right configuration, distcc can dramatically reduce a project's compilation time.
It is designe ...
to facilitate the distribution of workloads. Earlier versions of Xcode provided a system named ''Dedicated Network Builds''. These features are absent in the supported versions of Xcode.
Xcode also includes Apple's
WebObjects tools and frameworks for building Java web applications and web services (formerly sold as a separate product). As of Xcode 3.0, Apple dropped WebObjects development inside Xcode; WOLips should be used instead. Xcode 3 still includes the WebObjects frameworks.
Version history
1.x series
Xcode 1.0 was released in fall 2003. Xcode 1.0 was based on
Project Builder
Project Builder was an integrated development environment (IDE) originally developed by NeXT for version 3 of the NeXTSTEP operating system by separating out the code editing parts of Interface Builder into its own application.
After Apple Compute ...
, but had an updated
user interface (UI), ZeroLink, Fix & Continue, distributed build support, and Code Sense indexing.
The next significant release, Xcode 1.5, had better code completion and an improved debugger.
2.x series
Xcode 2.0 was released with
Mac OS X v10.4 "Tiger". It included the
Quartz Composer
Quartz Composer is a node-based visual programming language provided as part of the Xcode development environment in macOS for processing and rendering graphical data.
Quartz Composer uses OpenGL (including GLSL), OpenCL (only in Mac OS X Snow ...
visual programming language, better Code Sense indexing for Java, and
Ant support. It also included the Apple Reference Library tool, which allows searching and reading online documentation from Apple's website and documentation installed on a local computer.
Xcode 2.1 could create
universal binary files. It supported shared
precompiled header
In computer programming, a precompiled header (PCH) is a ( C or C++) header file that is compiled into an intermediate form that is faster to process for the compiler. Usage of precompiled headers may significantly reduce compilation time, espe ...
s, unit testing targets, conditional breakpoints, and watchpoints. It also had better dependency analysis.
The final version of Xcode for
Mac OS X v10.4 was 2.5.
3.x series
Xcode 3.0 was released with
Mac OS X v10.5 "Leopard". Notable changes since 2.1 include the
DTrace debugging tool (now named
Instruments
Instrument may refer to:
Science and technology
* Flight instruments, the devices used to measure the speed, altitude, and pertinent flight angles of various kinds of aircraft
* Laboratory equipment, the measuring tools used in a scientific l ...
), refactoring support, context-sensitive documentation, and
Objective-C 2.0 with
garbage collection. It also supports Project Snapshots, which provide a basic form of version control; Message Bubbles, which show build errors debug values alongside code; and building four-architecture fat binaries (32 and 64-bit Intel and PowerPC).
Xcode 3.1 was an update release of the developer tools for Mac OS X, and was the same version included with the iPhone SDK. It could target non-Mac OS X platforms, including iPhone OS 2.0. It included the GCC 4.2 and
LLVM GCC 4.2 compilers. Another new feature since Xcode 3.0 is that Xcode's SCM support now includes Subversion 1.5.
Xcode 3.2 was released with
Mac OS X v10.6
Mac OS X Snow Leopard (version 10.6) is the seventh major release of macOS, Apple's desktop and server operating system for Macintosh computers.
Snow Leopard was publicly unveiled on June 8, 2009 at Apple’s Worldwide Developers Conference. ...
"Snow Leopard" and installs on no earlier version of OS X. It supports
static program analysis, among other features. It also drops official support for targeting versions earlier than iPhone OS 3.0. But it is still possible to target older versions, and the simulator supports iPhone OS 2.0 through 3.1. Also,
Java support is "exiled" in 3.2 to the organizer.
Xcode 3.2.6 is the last version that can be downloaded for free for users of Mac OS X Snow Leopard (though it’s not the last version that supports Snow Leopard; 4.2 is). Downloading Xcode 3.2.6 requires a free registration at Apple's developer site.
4.x series
In June 2010, at the
Apple Worldwide Developers Conference
The Worldwide Developers Conference (WWDC) is an information technology conference held annually by Apple Inc. The conference is usually held at Apple Park in California. The event is usually used to showcase new software and technologies in th ...
version 4 of Xcode was announced during the Developer Tools State of the Union address. Version 4 of the developer tools consolidates the Xcode editing tools and Interface Builder into one application, among other enhancements. Apple released the final version of Xcode 4.0 on March 9, 2011. The software was made available for free to all registered members of the $99 per year Mac Developer program and the $99 per year iOS Developer program. It was also sold for $4.99 to non-members on the
Mac App Store (no longer available). Xcode 4.0 drops support for many older systems, including all PowerPC development and
software development kits (SDKs) for Mac OS X 10.4 and 10.5, and all iOS SDKs older than 4.3. The deployment target can still be set to produce binaries for those older platforms, but for Mac OS platforms, one is then limited to creating
x86 and
x86-64 binaries. Later, Xcode was free to the general public. Before version 4.1, Xcode cost $4.99.
Xcode 4.1 was made available for free on July 20, 2011 (the day of
Mac OS X Lion's release) to all users of Mac OS X Lion on the Mac App Store. On August 29, 2011, Xcode 4.1 was made available for Mac OS X Snow Leopard for members of the paid Mac or iOS developer programs.
Xcode 4.1 was the last version to include
GNU Compiler Collection (GCC) instead of only
LLVM GCC or
Clang.
On October 12, 2011, Xcode 4.2 was released concurrently with the release of
iOS 5.0, and it included many more and improved features, such as storyboarding and
automatic reference counting (ARC).
Xcode 4.2 is the last version to support
Mac OS X 10.6 "Snow Leopard", but is available only to registered developers with paid accounts; without a paid account, 3.2.6 is the latest download that appears for Snow Leopard.
Xcode 4.3, released on February 16, 2012, is distributed as one application bundle, Xcode.app, installed from the Mac App Store. Xcode 4.3 reorganizes the Xcode menu to include development tools.
Xcode 4.3.1 was released on March 7, 2012 to add support for iOS 5.1.
Xcode 4.3.2 was released on March 22, 2012 with enhancements to the iOS Simulator and a suggested move to the LLDB debugger versus the GDB debugger (which appear to be undocumented changes). Xcode 4.3.3, released in May 2012, featured an updated SDK for
Mac OS X 10.7.4 "Lion" and a few bug fixes.
Xcode 4.4 was released on July 25, 2012.
It runs on both
Mac OS X Lion (10.7) and
OS X Mountain Lion (10.8) and is the first version of Xcode to contain the
OS X 10.8 "Mountain Lion" SDK. Xcode 4.4 includes support for automatic synthesizing of declared properties, new
Objective-C features such as literal syntax and subscripting, improved localization, and more.
On August 7, 2012, Xcode 4.4.1 was released with a few bug fixes.
On September 19, 2012, iOS 6 and Xcode 4.5 were released. Xcode added support for iOS 6 and the 4-inch
Retina Display on
iPhone 5
The iPhone 5 is a smartphone that was designed and marketed by Apple Inc. It is the 6th generation iPhone, succeeding both the iPhone 4 and iPhone 4S, and preceding both the iPhone 5S and 5C. It was formally unveiled as part of a press e ...
and
iPod Touch
The iPod Touch (stylized as iPod touch) is a discontinued line of iOS-based mobile devices designed and marketed by Apple Inc. with a touchscreen-controlled user interface. As with other iPod models, the iPod Touch can be used as a music pl ...
5th generation. It also brought some new
Objective-C features to iOS, simplified localization, and added auto-layout support for iOS.
On October 3, 2012, Xcode 4.5.1 was released with bug fixes and stability improvements.
Less than a month later, Xcode 4.5.2 was released, with support for
iPad Mini and
iPad with Retina Display, and bug fixes and stability improvements.
On January 28, 2013,
iOS 6.1 and Xcode 4.6 were released.
5.x series
On June 10, 2013, at the
Apple Worldwide Developers Conference
The Worldwide Developers Conference (WWDC) is an information technology conference held annually by Apple Inc. The conference is usually held at Apple Park in California. The event is usually used to showcase new software and technologies in th ...
, version 5 of Xcode was announced.
On September 18, 2013, Xcode 5.0 was released. It shipped with iOS 7 and OS X 10.8 Mountain Lion SDKs. However, support for OS X 10.9 Mavericks was only available in beta versions. Xcode 5.0 also added a version of
Clang generating 64-bit ARM code for iOS 7. Apple removed support for building garbage collected Cocoa binaries in Xcode 5.1.
6.x series
On June 2, 2014, at the Worldwide Developers Conference, Apple announced version 6 of Xcode. One of the most notable features was support for
Swift, an all-new programming language developed by Apple. Xcode 6 also included features like ''
Playgrounds'' and live debugging tools.
On September 17, 2014, at the same time,
iOS 8 and Xcode 6 were released. Xcode could be downloaded on the
Mac App Store.
7.x series
On June 8, 2015, at the
Apple Worldwide Developers Conference
The Worldwide Developers Conference (WWDC) is an information technology conference held annually by Apple Inc. The conference is usually held at Apple Park in California. The event is usually used to showcase new software and technologies in th ...
, Xcode version 7 was announced. It introduced support for Swift 2, and Metal for
OS X
macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lapt ...
, and added support for deploying on iOS devices without an Apple Developer account. Xcode 7 was released on September 16, 2015.
8.x series
On June 13, 2016, at the
Apple Worldwide Developers Conference
The Worldwide Developers Conference (WWDC) is an information technology conference held annually by Apple Inc. The conference is usually held at Apple Park in California. The event is usually used to showcase new software and technologies in th ...
, Xcode version 8 was announced; a beta version was released the same day. It introduced support for Swift 3. Xcode 8 was released on September 13, 2016.
9.x series
On June 5, 2017, at the
Apple Worldwide Developers Conference
The Worldwide Developers Conference (WWDC) is an information technology conference held annually by Apple Inc. The conference is usually held at Apple Park in California. The event is usually used to showcase new software and technologies in th ...
, Xcode version 9 was announced; a beta version was released the same day. It introduced support for Swift 4 and Metal 2. It also introduced remote debugging on
iOS and
tvOS devices wirelessly, through Wi-Fi.
Xcode 9 was publicly released on September 19, 2017.
10.x series
On June 4, 2018, at the
Apple Worldwide Developers Conference
The Worldwide Developers Conference (WWDC) is an information technology conference held annually by Apple Inc. The conference is usually held at Apple Park in California. The event is usually used to showcase new software and technologies in th ...
, Xcode version 10 was announced; a beta version was released the same day. Xcode 10 introduced support for the Dark Mode announced for
macOS Mojave, the collaboration platforms
Bitbucket and
GitLab (in addition to already supported
GitHub), training machine learning models from playgrounds, and the new features in
Swift 4.2 and
Metal 2.1, as well as improvements to the editor and the project build system. Xcode 10 also dropped support for building 32-bit
macOS apps and no longer supports Subversion integration.
Xcode 10 was publicly released on September 17, 2018.
11.x series
On June 3, 2019, at the
Apple Worldwide Developers Conference
The Worldwide Developers Conference (WWDC) is an information technology conference held annually by Apple Inc. The conference is usually held at Apple Park in California. The event is usually used to showcase new software and technologies in th ...
, Xcode version 11 was announced; a beta version was released the same day. Xcode 11 introduced support for the new features in
Swift 5.1, as well as the new SwiftUI framework (although the interactive UI tools are available only when running under
macOS 10.15).
It also supports building iPad applications that run under macOS; includes integrated support for the Swift Package Manager; and contains further improvements to the editor, including a "minimap" that gives an overview of a source code file with quick navigation. Xcode 11 requires macOS 10.14 or later
and Xcode 11.4 requires 10.15 or later.
Xcode 11 was publicly released on September 20, 2019.
12.x series
On June 22, 2020, at the
Apple Worldwide Developers Conference
The Worldwide Developers Conference (WWDC) is an information technology conference held annually by Apple Inc. The conference is usually held at Apple Park in California. The event is usually used to showcase new software and technologies in th ...
, Xcode version 12 was announced; a beta version was released the same day. Xcode 12 introduced support for
Swift 5.3 and requires macOS 10.15.4 or later.
Xcode 12 was publicly released on September 16, 2020.
13.x series
On June 7, 2021, at the
Apple Worldwide Developers Conference
The Worldwide Developers Conference (WWDC) is an information technology conference held annually by Apple Inc. The conference is usually held at Apple Park in California. The event is usually used to showcase new software and technologies in th ...
, Xcode version 13 was announced; a beta version was released the same day.
The new version introduced support for
Swift 5.5 and requires macOS 11.3 or later. Xcode 13 contains SDKs for
iOS / iPadOS 15,
macOS 12,
watchOS 8, and
tvOS 15
tvOS (formerly known as Apple TV Software) is an operating system developed by Apple Inc. for the Apple TV, a digital media player. In the first-generation Apple TV, Apple TV Software was based on Mac OS X. Starting with the second-generation ...
. Xcode 13’s major features include the new
concurrency
Concurrent means happening at the same time. Concurrency, concurrent, or concurrence may refer to:
Law
* Concurrence, in jurisprudence, the need to prove both ''actus reus'' and ''mens rea''
* Concurring opinion (also called a "concurrence"), a ...
model in Swift projects,
improved support for
version control providers (such as
GitHub), including the ability to browse, view, and comment on
pull requests right in the app interface, and support for Xcode Cloud, Apple’s newly-launched
CI/CD service (it also has a web version).
Xcode 13 was publicly released on September 20, 2021.
14.x series
On June 6, 2022, at the
Apple Worldwide Developers Conference
The Worldwide Developers Conference (WWDC) is an information technology conference held annually by Apple Inc. The conference is usually held at Apple Park in California. The event is usually used to showcase new software and technologies in th ...
, Xcode version 14 was announced; a beta version was released the same day.
Xcode 14 was publicly released on September 12, 2022.
Version comparison table
Xcode 1.0 - Xcode 2.x (before iOS support)
Xcode 3.0 - Xcode 4.x
Xcode 5.0 - 6.x (since arm64 support)
Xcode 7.0 - 10.x (since Free On-Device Development)
Xcode 11.0 - 14.x (since SwiftUI framework)
Toolchain versions
Xcode 1.0 - Xcode 2.x (before iOS support)
Xcode 3.0 - Xcode 4.x
Xcode 5.0 - 6.x (since arm64 support)
Xcode 7.0 - 10.x (since Free On-Device Development)
Xcode 11.0 - 14.x (since SwiftUI framework)
See also
*
XcodeGhost
XcodeGhost (and variant XcodeGhost S) are modified versions of Apple's Xcode development environment that are considered malware. The software first gained widespread attention in September 2015, when a number of apps originating from China harbor ...
References
External links
Xcode – Mac App StoreApple Developer Connection: Xcode tools and resources*
ttps://developer.apple.com/downloads/index.action Download Xcode
{{macOS developer tools
2003 software
Freeware
History of software
Integrated development environments
IOS
IOS development software
MacOS programming tools
MacOS text editors
MacOS-only software made by Apple Inc.
Software version histories
User interface builders