Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Xcode
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Major features == Xcode supports [[source code]] for the [[programming language]]s: [[Swift (programming language)|Swift]], [[C++]], [[Objective-C]], [[Objective-C++]], [[Java (programming language)|Java]], [[AppleScript]], [[Python (programming language)|Python]], [[Ruby (programming language)|Ruby]], [[ResEdit]] (Rez), and [[C (programming language)|C]], with a variety of programming models, including but not limited to [[Cocoa (API)|Cocoa]], [[Carbon (API)|Carbon]], and Java. Third parties have added support for [[GNU Pascal]],<ref>{{cite web |author=Adriaan van Os |url=http://www.microbizz.nl/gpcxcode.html |title=GNU Pascal and Xcode |publisher=Microbizz.nl |access-date=June 21, 2010 |archive-date=April 18, 2012 |archive-url=https://web.archive.org/web/20120418084323/http://microbizz.nl/gpcxcode.html |url-status=dead }}</ref> [[Free Pascal]],<ref>{{cite web |url=http://pascal-central.com/fp-xcode/ |title=Using Free Pascal with Xcode |publisher=Pascal-central.com |access-date=June 21, 2010 |archive-date=June 12, 2010 |archive-url=https://web.archive.org/web/20100612010805/http://pascal-central.com/fp-xcode/ |url-status=dead }}</ref> [[Ada (programming language)|Ada]],<ref>{{cite web|url=http://www.macada.org/macada/Tools.html|title=Tools|publisher=macada.org|access-date=February 8, 2011|archive-date=July 27, 2011|archive-url=https://web.archive.org/web/20110727051830/http://www.macada.org/macada/Tools.html|url-status=dead}}</ref> [[C Sharp (programming language)|C#]],<ref>{{cite web |url = https://code.google.com/p/cocoa-sharp-dev/wiki/CSharpPlugin |title=CSharpPlugin - cocoa-sharp-dev - Google Code |access-date=June 21, 2010}}</ref> [[Go (programming language)|Go]],<ref>{{Cite web|title=xkick brings Golang support to Xcode 11 - Blog - Wirecog|url=https://www.wirecog.com/blog/xkick-brings-golang-support-to-xcode-11|website=www.wirecog.com|access-date=2020-05-24}}</ref> [[Perl]],<ref>{{cite web|url=http://camelbones.sourceforge.net/ |title = CamelBones, an Objective-C/Perl bridge for Mac OS X & GNUStep - Home |publisher=Camelbones.sourceforge.net |date=December 1, 2004 |access-date=June 21, 2010}}</ref> and [[D (programming language)|D]].<ref>{{cite web|url=https://michelf.ca/projects/d-for-xcode/|title=D for Xcode|access-date=February 9, 2019}}</ref> 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]] [[PowerPC]] to [[64-bit]] PowerPC, from PowerPC to [[Intel]] [[x86]], from 32-bit to 64-bit Intel, and most recently from Intel 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 (application)|Instruments]], which runs atop a dynamic tracing framework, [[DTrace]], created by [[Sun Microsystems]] and released as part of [[OpenSolaris]]. Xcode also integrates built-in support for [[version control|source code management]] using the [[Git]] [[version control]] system and protocol, allowing the user to create and [[version control#Common terminology|clone]] Git [[repository (version control)|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 (version control)|commit]], [[version control#Common terminology|push]], and [[version control#Common terminology|pull]] changes, all from within Xcode, automating tasks that would traditionally be performed by using Git from the [[command-line interface|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 interface]]s. 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]].<ref>{{cite web|author=Prince McLean|title=Apple's other open secret: the LLVM Compiler|url=http://appleinsider.com/articles/08/06/20/apples_other_open_secret_the_llvm_complier.html|date=June 20, 2008|access-date=April 3, 2012}}</ref> 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 program analysis|static analyzer]].<ref>{{cite web|title=Xcode 3.2: {{not a typo|teh}} awesome edition|url=http://www.mcubedsw.com/blog/index.php/site/comments/xcode_3.2_teh_awesome_edition/|date=August 30, 2009|archive-url=https://web.archive.org/web/20130616065312/http://www.mcubedsw.com/blog/index.php/site/comments/xcode_3.2_teh_awesome_edition/|archive-date=June 16, 2013}}</ref> Starting with Xcode 4.2, the Clang compiler became the default compiler,<ref name="What's New in Xcode 4.2">{{cite web|url=https://developer.apple.com/library/content/documentation/Xcode/Conceptual/WhatsNewXcode-Archive/Articles/xcode_4_0.html#//apple_ref/doc/uid/TP40016147-SW10 |title=New Features in Xcode 4: Xcode 4.2 |publisher=Apple |date=September 16, 2015 |access-date=September 15, 2016}}</ref> 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 [[Front and back ends|back-end]] for the IDE's [[debugger]]. Starting with Xcode 4.3, the [[LLDB (debugger)|LLDB debugger]] was also provided; starting with Xcode 4.5 LLDB replaced GDB as the default back-end for the IDE's debugger.<ref name="What's New in Xcode 4.5">{{cite web |title = New Features in Xcode 4: Xcode 4.5 |url = https://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/WhatsNewXcode/Articles/xcode_4_0.html#//apple_ref/doc/uid/TP40016147-SW12 |publisher=Apple Inc.|date=September 16, 2015 |access-date=October 18, 2015}}</ref> Starting with Xcode 5.0, GDB was no longer supplied.<ref>{{cite web |url = https://developer.apple.com/library/content/documentation/Xcode/Conceptual/WhatsNewXcode-Archive/Articles/xcode_5_0.html#//apple_ref/doc/uid/TP40012953-SW18 |title = New Features in Xcode 5: Xcode 5.0 |date=September 16, 2015|access-date=September 15, 2016}}</ref> === Playgrounds === The Playgrounds feature of Xcode provides an environment for rapid experimentation and development in the [[Swift (programming language)|Swift]] programming language. The original version of the feature was announced and released by [[Apple Inc]] on June 2, 2014, during [[WWDC 2014]].<ref>{{Cite web |title=Keynote - WWDC 2014 - Videos |url=http://developer.apple.com/videos/play/wwdc2014/101/ |access-date=February 1, 2019 |website=Apple Developer |language=en}}</ref><ref>{{Cite web |title=Apple's new Swift language explained: A clever move to boost iOS, while holding Android apps back - ExtremeTech |url=https://www.extremetech.com/computing/183563-apples-new-swift-language-explained-a-clever-move-to-boost-ios-while-holding-android-apps-back |access-date=February 1, 2019 |website=www.extremetech.com|date=June 3, 2014 }}</ref> Playgrounds provide a testing ground that renders developer code in real time. They have the capability of evaluating and displaying the results of single expressions as they are coded (in line or on a side bar), providing rapid feedback to the programmer. This type of development environment, known as a [[read-eval-print loop]] (or REPL) is useful for learning, experimenting and fast prototyping.<ref>{{Cite web |date=June 4, 2014 |title=Swift: Apple's next-generation programming language 4 years in the making |url=https://www.imore.com/swift-apples-next-generation-programming-language-4-years-making |access-date=February 1, 2019 |website=iMore |language=en}}</ref><ref>{{Cite web |last=Mayo |first=Benjamin |date=June 2, 2014 |title=Apple announces new Xcode, 'Swift' programming language |url=https://9to5mac.com/2014/06/02/apple-announces-new-xcode-swift-programming-language/ |access-date=February 1, 2019 |website=9to5Mac |language=en-US}}</ref><ref>{{Cite web |title=Swift Resources - Apple Developer |url=https://developer.apple.com/swift/resources/ |access-date=February 1, 2019 |website=developer.apple.com |language=en}}</ref> Playgrounds was used by Apple to publish [[Swift (programming language)|Swift]] tutorials and guided tours where the REPL advantages are noticeable''.''<ref>{{Cite web |title=A Swift Tour β The Swift programming language (Swift 5) |url=https://docs.swift.org/swift-book/GuidedTour/GuidedTour.html |access-date=February 5, 2019 |website=docs.swift.org}}</ref><ref>{{Cite web |last=Swift.org |title=A Swift Tour |url=https://docs.swift.org/swift-book/GuidedTour/GuidedTour.playground.zip |access-date=February 4, 2023 |archive-date=February 4, 2023 |archive-url=https://web.archive.org/web/20230204091803/https://docs.swift.org/swift-book/GuidedTour/GuidedTour.playground.zip |url-status=dead }}</ref> The Playgrounds feature was developed by the Developer Tools department at Apple. According to [[Chris Lattner]], the inventor of [[Swift (programming language)|Swift Programming Language]] and Senior Director and Architect at the Developer Tools Department, Playgrounds was "heavily influenced by Bret Victor's ideas, by [[Light Table (software)|Light Table]] and by many other interactive systems".<ref>{{Cite web |last=Victor |first=Bret |date=September 2012 |title=Learnable Programming |url=http://worrydream.com/#!/LearnableProgramming |website=worrydream.com}}</ref> Playgrounds was announced by [[Apple Inc.]] on June 2, 2014, during [[WWDC 2014]] as part of [[#6.x series|Xcode 6]] and released in September. In September 2016, the [[Swift Playgrounds]] application for iPad (also available on [[macOS]] starting in February 2020) was released, incorporating these ideas into an educational tool. Xcode's Playgrounds feature continued development, with a new step-by-step execution feature introduced in Xcode 10 at [[WWDC 2018]].<ref>{{Cite web |title=Getting the Most out of Playgrounds in Xcode - WWDC 2018 - Videos |url=https://developer.apple.com/videos/play/wwdc2018/402/ |accessdate=November 25, 2020 |website=Apple Developer}}</ref> === 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]] to automatically discover systems providing compiler services, and a modified version of the free software product [[distcc]] 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<ref>{{cite web|author=David Holt says |url=http://wiki.wocommunity.org/display/WEB/Home#xcode3 |archive-url=https://web.archive.org/web/20131007064500/http://wiki.wocommunity.org/display/WEB/Home#xcode3 |url-status=dead |archive-date=October 7, 2013 |title=Facts about WebObjects (WebObjects Community) |publisher=Wocommunity.org |date=May 15, 2010 |access-date=June 21, 2010}} </ref> WebObjects development inside Xcode; WOLips<ref>{{cite web|url=http://wiki.wocommunity.org/display/WOL/WOLips |title=WOLips |publisher=Wiki.objectstyle.org |date=February 27, 2010 |access-date=June 21, 2010}}</ref> should be used instead. Xcode 3 still includes the WebObjects frameworks.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)