-{Xcode}- je integrisano razvojno okruženje (IRO), koje je razvila kompanija Epl, a sadrži pakete alata za razvoj softvera za -{macOS}-, -{iOS}-, -{watchOS}- i -{tvOS}- operativnih sistema. Prva verzija je izdata 2003. godine, a poslednje stabilno izdanje je verzija 9.2 koja je dostupna na -{Mac App Store}- i besplatna je za korisnike -{macOS High Sierra}- i -{macOS Sierra}- operativnih sistema. Registrovani softver developeri mogu preuzeti beta verziju i sve prethodne verzije paketa na sajtu -{Apple Developer}-.
Glavne karakteristike -{Xcode}- podržava izvorne kodove programskih jezika -{C}-, -{C++}-, -{Objective-C}-, -{Objective-C++}-, -{Java}-, -{AppleScript}-, -{Python}-, -{Ruby}-, -{ResEdit}- i -{Swift}-, sa mnoštvom programskih modela, uključujući -{Cocoa}-, -{Carbon}- i -{Java}-, ali nije ograničen samo na njih. Nezavisni proizvođači su dodali podršku za -{GNU Pascal}-, -{Free Pascal}-, -{Ada}-, -{C#}-, -{Perl}- i -{D}-.
Zahvaljujući -{Mach-O}- izvršnom formatu, koji dozvoljava -{fat binary}- datoteke, koje sadrže kod za različite arhitekture, -{Xcode}- može da generiše univerzalne binarne datoteke koje dozvoljavaju softveru da se izvršava i na -{PowerPC}- i na platformama baziranim na -{Intel}- procesorima -{(x86)}- i koje sadrže i 32-bitni i 64-bitni kod za obe arhitekture. Korišćenjem -{iOS SDK}- (alata za razvoj softvera), -{Xcode}- se takođe može upotrebiti za kompajliranje i debagovanje aplikacija za -{iOS}- koje se izvršavaju na procesorima sa -{ARM}- arhitekturom.
-{Xcode}- sadrži GKI alat -{Instruments}-, koji se izršava povrh radnog okvira za dinamičko praćenje, -{DTrace}--a, koji je razvila kompanija San Majkrosistems i objavila ga kao deo -{OpenSolaris}- operativnog sistema.
Struktura Glavna aplikacija programskog paketa je integrisano razvojno okruženje (IRO), poznato kao -{Xcode}-. -{Xcode}- paket uključuje većinu Eplove razvojne dokumentacije i ugrađeni -{Interface Builder}-, aplikaciju koja se koristi za projektovanje grafičkih korisničkih interfejsa (GKI).
Do verzije -{Xcode}- 4.1, -{Xcode}- paket je sadržao prilagođenu verziju -{GNU}- kolekcije kompajlera (GCC). Od verzije -{Xcode}- 3.1 do verzije -{Xcode}- 4.6.3, sadržao je -{LLVM-GCC}- kompajler sa čeonim (-{front-end}-) programima iz -{GNU}- kolekcije kompajlera i generator koda koji za osnovu ima -{LLVM}-. -{Xcode}- 3.2 i kasnije varijante, sadržale su -{Clang}- -{C}-/-{C++}-/-{Objective-C}- kompajler, sa novonastalim čeonim programom (-{front-end}-) i generatorom koda koji za osnovu ima -{LLVM}-, a sadržao je i -{Clang}- statički analizator. Od verzije -{Xcode}- 4.2 -{Clang}-, kompajler je postao podrazumevani kompajler, a od verzije -{Xcode}- 5.0, -{Clang}- je jedini podržani kompajler.
Do verzije -{Xcode}- 4.6.3, -{Xcode}- paket je koristio -{GNU}- debager (-{GDB}-) kao -{(back-end)}- program debagera razvojnog okruženja. Počevši od verzije -{Xcode}- 4.3, ponuđen je i -{LLDB}- debager, a od verzije -{Xcode}- 4.5 -{GNU}- debager je zamenjen -{LLDB}- debagerom kao podrazumevanim back-end programom debagera razvojnog okruženja. Od verzije -{Xcode}- 5.0, -{GNU}- debager se više ne podržava.
Uklonjene karakteristike Ranije je -{Xcode}- podržavao deljenje procesa izgradnje programa na više sistema. Jedna od korišćenih tehnologija zove se -{Shared Workgroup Build}-, i koristila je -{Bonjour protokol}- da automatski pronađe sisteme koji omogućavaju usluge kompajliranja, kao i izmenjenu verziju besplatnog softvera -{distcc}- da olakša raspodelu posla. Ranije verzije -{Xcode}--a su podržavale sistem pod imenom -{Dedicated Network Builds}-. Ove opcije ne postoje u trenutno podržanim verzijama -{Xcode}--a.
-{Xcode}- takođe sadrži Eplove -{WebObjects}- alate i programske okvire za generisanje -{Java}- veb aplikacija i veb usluga (ranije su prodavane kao zasebne usluge). Od verzije -{Xcode}- 3.0, Epl je prekinuo razvoj -{WebObjects}--a unutar -{Xcode}--a - umesto njega bi trebalo koristiti -{WOLips}-. -{Xcode}- 3 i dalje sadrži -{WebObjects}- programske okvire.
Hronologija verzija 1.x serije Verzija -{Xcode}- 1.0 je puštena u jesen 2003. godine. -{Xcode}- 1.0 se bazirao na -{Project Builder}--u, ali je imao ažuriran korisnički interfejs (GKI), -{ZeroLink}-, -{Fix&Continue}-, podršku distribucije bildovanja, i -{Code Sense}- indeksiranje. Sledeće značajnije izdanje, -{Xcode}- 1.5, imalo je naprednije dovršavanje koda (od strane programa) i poboljšan debager.
2.x serije Verzija -{Xcode}- 2.0 je puštena sa -{Mac OS X v10.4}- -{„Tiger”}-. Sadržala je vizuelni programski jezik -{Quartz Composer}-, bolje -{Code Sense}- indeksiranje i podršku za -{Ant}-. Takođe je sadržala alat -{Apple Reference Library}-, koji omogućava pretragu i čitanje onlajn dokumentacije sa Eplovog veb-sajta i dokumentacije instalirane na lokalnom računaru.
Verzija -{Xcode}- 2.1 je mogla da generiše univerzalne binarne fajlove. Podržavala je deljena prekompilacijska zaglavlja, jedinično testiranje meta, uslovne brejkpointe i vočpointe. Takođe je sadržala i bolju analizu zavisnosti. Poslednja verzija -{Xcode}--a za -{Mac OS X v10.4}- je bila 2.5.
3.x serije Verzija -{Xcode}- 3.0 je puštena sa -{Mac OS v10.5 „Leopard”}-. Značajne razlike u odnosu na verziju 2.1 obuhvataju debager alat -{DTrace}- (sadašnji Instruments), podršku za refaktorisanje, konteksno-senzitivnu dokumentaciju i -{Objective-C}- 2.0 sa sakupljanjem smeća. Takođe podržava snimke fajlova projekata (-{Project Snapshots}-)- koji pružaju osnovni način upravljanja izvornim kodom, -{Message Bubbles}- - koji prikazuje vrednosti grešaka tokom debagovanja duž koda, kao i generisanje -{four-architecture fat binary}- datoteka (32 i 64-bita za -{Intel}- i -{PowerPC}-).
-{Xcode}- 3.1 je verzija u kojoj su ažurirani razvijački alati za -{Mac OS X}-, i bila je ista verzija koja je sadržana u -{iPhone}- SDK-u. Mogla je da izgradi platforme koje nisu iz -{Mac OS X}- serije, uključujući -{iPhone OS 2.0}-. Sadržala je -{GCC}- 4.2 i -{LLVM GCC}- 4.2 kompajlere. Još jedna karakteristika koja je došla sa verzijom -{Xcode}- 3.0 je to što -{Xcode}--ova -{SCM}- podrška uključuje -{Subversion}- 1.5.
Verzija -{Xcode}- 3.2 je objavljena sa -{Mac OS X v10.6 „Snow Leopard”}- i nju nije moguće instalirati na ranije verzije -{OS X}--a. Pored ostalih karakteristika, podržava statičku analizu programa. Takođe napušta zvaničnu podršku za izgradnju verzija starijih od -{IPhone OS 3.0}-. Međutim, i dalje je moguće izgraditi starije verzije, a simulator podržava verzije od -{iPhone OS}- 2.0 do 3.1. Takođe, Java podrška je „prognana” iz verzije 3.2 ka uredniku.
-{Xcode}- 3.2.4 je poslednja verzija koju korisnici -{Mac OS X v10.6}- mogu besplatno preuzeti. Preuzimanje zahteva besplatnu registraciju na sajtu Epl razvijača softvera.
4.x serije Juna 2010, na Epl-ovoj svetskoj konferenciji razvijača softvera najavljena je četvrta verzija tokom Govora o stanju alata za razvijanje softvera. Pored ostalih poboljšanja, četvrta verzija razvijačkih alata ujedinjuje -{Xcode}- alate za uređivanje i -{Interface Builder}- u jednu aplikaciju. Epl je 9. marta 2011. objavio završnu verziju -{Xcode}--a 4.0. Softver je bio dostupan besplatno za sve registrovane članove -{Mac Developer}- programa (koji košta 99$ godišnje) i -{iOS Developer}- programa (99$ godišnje). Takođe je prodavan i onima koji nisu članovi za 4.99$ putem -{Mac App Store}--a (gde više nije dostupan). -{Xcode}- 4.0 je otkazao podršku za mnoge starije sisteme, uključujući celokupan razvoj -{PowerPC}--ja i softverskih razvojnih alata (SDK) za -{Mac OS X}- 10.4 i 10.5 i za sve -{iOS}- SDK starije od 4.3. Cilj razvoja je i dalje određen kao proizvodnja binarnih fajlova za starije platforme, ali za -{Mac OS}- platforme kreiraju se samo binarni fajlovi za x86 i -{x86-64}-. Kasnije, -{Xcode}- je postao besplatan za širu javnost. Pre verzije 4.1, -{Xcode}- je koštao 4.99$.
-{Xcode}- 4.1 je 20. jula 2011. (dan izdavanja -{Mac OS X Lion}-) postao dostupan besplatno svim korisnicima -{Mac OS X Lion}--a na -{Mac App Store}-. -{Xcode}- 4.1 je 29. avgusta 2011. postao dostupan na -{Mac OS X Snow Leopard}- svim korisnicima koji su pretplaćeni na -{Mac}- ili -{iOS developer}- programe. -{Xcode}- 4.1 je poslednja verzija koja je sadržala -{GNU}- kolekciju kompajlera, a ne samo -{LLVM GCC}- ili -{Clang}-.
Verzija -{Xcode}- 4.2 je puštena 12. oktobra 2011, istovremeno sa -{iOS}- 5.0, i sadržala je mnogo više svojstava i to poboljšanih, kao što su storibording i automatsko brojanje referenci. -{Xcode}- 4.2 je poslednja verzija koja podržava -{Mac OS X 10.6 „Snow Leopard”}-, ali je dostupna samo za registrovane softver developere koji su pretplaćeni; za one bez naloga, 3.2.6 je poslednja dostupna verzija za -{Snow Leopard}-.
Verzija -{Xcode}- 4.3, puštena 16. februara 2012, distribuirana je kao jedan aplikacioni paket, -{Xcode}--{.app}-, koji se instalira sa -{Mac App Store}--a. U verziji -{Xcode}- 4.3 meni je preuređen tako da sadrži alate za razvoj. Verzija -{Xcode}- 4.3.1 je puštena 7. marta 2012. radi podrške za -{iOS}- 5.1. -{Xcode}- 4.3.2 je izdat 22. marta 2012. sa poboljšanjima za -{iOS Simulator}- i predlogom za promenu GDB debagera u LLDB debager (što nisu dokumentovane promene). Verzija -{Xcode}- 4.3.3 koja je puštena maja 2012. godine, istakla se ažuriranim alatima za razvoj softvera (SDK) za -{Mac OS X 10.7.4 „Lion”}- i uklonjenim bagovima.
Verzija -{Xcode}- 4.4 je izdata 25. jula 2012. Izvršava se i na -{Mac OS X Lion}- i na -{OS X Mountain Lion}- i ovo je prva verzija -{Xcode}--a koja sadrži OS X 10.8 -{„Mountain Lion”}- SDK. -{Xcode}- 4.4 sadrži podršku za automatsko spajanje deklarisanih atributa, nove karakteristike za -{Objective-C}- kao što su sintaksa literala i sabskripting, poboljšana lokalizacija i još dosta toga. Verzija -{Xcode}- 4.4.1 je puštena 7. avgusta 2012, sa uklonjenom nekolicinom bagova.
-{IOS 6}- i -{Xcode}- 4.5 su pušteni 19. septembra 2012. -{Xcode}- je dodao podršku za -{iOS}- 6 i 4-inčni Retina ekran na -{iPhone-u 5}- i -{Ipod touch}--u pete generacije. Takođe je uveo neke nove karakteristike u -{Objective-C}--u za -{iOS}-, pojednostavljena je lokalizacija i dodata je podrška za automatski raspored za -{iOS}-. Verzija -{Xcode}- 4.5.1 je izdata 3. oktobra 2012. sa uklonjenim bagovima i poboljšanjima stabilnosti. Manje od mesec dana kasnije, izdata je i verzija -{Xcode}- 4.5.2 sa podrškom za -{iPad Mini}- i -{iPad}- sa Retina ekranom, kao i sa popravkom bagova i poboljšanjima stabilnosti.
Verzija -{Xcode}- 4.6 i -{iOS}- 6.1 su izdati 28. januara 2013.
5.x serije Verzija 5 -{Xcode}--a je najavljena juna 2013. na Eplovoj svetskoj konferenciji razvijača softvera. Verzija -{Xcode}- 5.0 je puštena 18. septembra 2013. Dodata je podrška za -{iOS}- 7 SDK, sa stalnom podrškom za -{OS X 10.8 Mountain Lion}- SDK ali bez podrške za -{OS X 10.9 Mavericks}- SDK (ova podrška je bila sadržana samo u beta verzijama). Takođe je dodata verzija -{Clang}--a koja generiše 64-bitne ARM kodove za -{iOS}- 7. Epl je uklonio podršku za generisanje -{Cocoa}- binarnih datoteka nastalih radom skupljača smeća.
6.x serije Epl je 2. juna 2014, na Svetskoj konferenciji razvijača softvera najavio verziju 6 -{Xcode}--a. Nove karakteristike obuhvataju -{Playgrounds}-, sinhrone debager alate, i novi programski jezik -{Swift}-. -{Xcode}- 6 i -{iOS}- su istovremeno izdati 17. septembra 2014. -{Xcode}- se mogao preuzeti sa -{Mac App Store}--a.
7.x serije Verzija 7 -{Xcode}--a je najavljena 8. juna. 2015. na Epl svetskoj konferenciji razvijača softvera. Predstvljena je podrška za -{Swift 2}- i Metal za -{OS X}- kao i podrška za razvoj na -{iOS}- uređajima bez Epl licence za softver developere. Verzija -{Xcode}- 7 je puštena u javnost 16. septembra 2015.
8.x serije Najavljen je izlazak verzije 8 -{Xcode}--a 13. juna 2016. na Epl svetskoj konferenciji razvijača softvera. Predstavljena je podrška za -{Swift 3}-. -{Xcode}- 8 je pušten 13. septembra 2016.
9.x serije