Apples nyeste IDE-versjon, Xcode 9, blir lansert sammen med iOS 11 i september. Og det er en stor oppdatering! Fans for Git for Source Control Management (SCM) er store vinnere i denne kommende utgivelsen.
Tidligere versjoner av Xcode hadde støtte for SCM, men det ble aldri ansett som førsteklasses statsborger. Xcode's Git-støtte var buggy og lackluster, eierskap i forhold til spesialverktøy som SourceTree, noe som medførte at utviklere måtte hoppe mellom verktøy for å kunne utføre avanserte Git repository management oppgaver.
Alt dette har endret seg i Xcode 9. Apple ser ikke lenger SCM som sekundær, men i stedet har valgt en tett integrasjon med GitHub, og har samarbeidet med GitHub nære for Xcode 9.
Nettoresultatet er at du nå kan logge på GitHub-kontoen din rett fra Xcode, for å bla, navigere og klone GitHub-repos. Du kan også søke etter andre repositorier uten å måtte bytte til et nettleservindu. Omvendt, hvis du har en GitHub-repo åpen i nettleseren din, kan du klikke på klonknappen og få Xcode til å klone og åpne prosjektet automatisk..
Som Apple sier, "Support for Git er nå foran og midt", og Apple har introdusert en ny kildekontrollnavigator, slik at du ikke trenger å åpne et nytt vindu som er visuelt løsrevet fra resten av Xcode. Utviklere kan nå se grener, koder og fjernbetjeninger gjennom en klar og intuitiv tidslinje, de kan inspisere forplikter seg mer granulært, og de kan se en mer elegant og attraktiv sammenligning av endringer.
I denne veiledningen vil jeg gå gjennom listen over nye SCM-funksjoner som ble introdusert med Xcode 9. Vi ser på tre hovedområder:
For å følge med denne opplæringen, bør du ha noen tidligere erfaring med Xcode og litt arbeidskunnskap om kildekontrollstyring gjennom Git.
For å kunne benytte Xcodes nye SCM-funksjoner, må du:
Når du har lastet ned og installert den nyeste Xcode-bygningen, og har en gjeldende GitHub-konto, er du klar til å koble din GitHub-konto til Xcode 9. Start Xcode og gå til Preferanser > kontoer. Deretter velger du + knappen nederst til venstre for å legge til en ny konto.
Å velge GitHub fra det modale vinduet, og skriv inn GitHub-legitimasjonene dine. Hvis du bruker tofaktorautentisering, vil Xcode be deg om å skrive inn koden din.
La oss se hvor sømløst du kan bla gjennom eksisterende offentlige GitHub-arkiver, rett fra Xcode. Åpne Xcode velkomstskjermen hvis den ikke allerede vises ved å gå til Vindu > Velkommen til Xcode.
Velg deretter Klone et eksisterende prosjekt, som vil hente listen over repositorier på GitHub du eier, jobber med eller har stjernespillet.
Foruten listen som den har presentert, kan du også søke etter en offentlig repo (eller privat repo du har tilgang til) ved navn eller ved å skrive inn GitHub-nettadressen. For vår opplæring, skriv inn RealmDo og klikk Clone, og velg deretter en lokal katalog for å klone prosjektet inn.
Det vil da be deg om en katalog for å sjekke prosjektet ut i:
I stedet for å trekke prosjektrepetoen fra Xcode, er en annen veldig fin funksjon at du kan åpne en GitHub repo i nettleseren din og velge Klon eller nedlasting og du vil se en ny knapp merket Åpne i Xcode.
Det stemmer: Hvis du klikker på den, vil den automatisk åpne prosjektet i Xcode, for å bli klonet og lastet ned.
Tilbake til prosjektet vårt. Siden vi bruker CocoaPods for å håndtere avhengigheter, må vi hoppe tilbake til kommandoterminalen og løpe pod installasjon
:
19:06 $ pod installere Analysere avhengigheter Nedlasting av avhengigheter Bruke Realm (2.7.0) Bruke RealmSwift (2.7.0) Generere Pods prosjekt Integrere klient prosjekt Send statistikk Pod installasjon fullført! Det er 1 avhengighet fra Podfile og 2 totalt pods installert.
Vårt prosjekt bør nå settes opp lokalt, og din .xcworkspace
bør være åpen i Xcode med alle filene i prosjektet ditt.
Ved å navigere til Xcodes preferanser og deretter velge Kildekontroll, Du kan endre ulike aspekter av sin oppførsel rett fra innstillingsruten, inkludert Git-forfatterens navn og e-post, og interessant, oppdater selv .gitignore
innstillinger også.
På den annen side, hvis du har opprettet et nytt Xcode-prosjekt og ikke har opprettet prosjektet på GitHub ennå, kan du opprette et nytt GitHub-prosjekt direkte fra Xcode. Høyreklikk på fjernkontroller og velg deretter Opprett "RealmDo" Remote på GitHub.
Xcode vil da be deg om å gi lageret et navn og velg en konto for den som skal knyttes til.
La oss utforske hver av delene av det nye grensesnittet.
En av de første tingene vi vil utforske i Xcode 9 er Source Control Navigator, helt ny til Xcode 9. Ikke lenger er kildevisningen en førsteklasses statsborger - den er nå fullt bakt inn i Xcode. Velg det andre ikonet i venstre rute som angitt av (1) i skjermbildet over for å åpne Source Control Navigator.
La oss ta en titt på Commit History-perspektivet, som viser listen over forpliktelser for prosjektet, inkludert forplikte forfatternavn, dato, beskrivelse samt forfatterens avatar fra GitHub, og utarbeide prosjekthistorikken.
Dette er et veldig klart og vakkert organisert perspektiv. Mens dette eksempelprosjektet er ganske sparsomt så langt historien går (selv om vi vil forandre det kort tid), er denne ruten sviktende kraftig.
Utover å kunne enkelt rulle og få nyttig historisk informasjon, kan du også intuitivt filtrere og søke etter revisjon, melding eller forfatter. Faktisk kan du kjede eller delta i flere filtre, for å søke ikke bare av forfatteren, men også ved revisjon. Du kan også søke ved hjelp av feltet Bar, etter bestemte datoperioder, for eksempel Siste 24 timer, Siste 7 dager, eller Siste 30 dager.
Hvis du velger en bestemt forpliktelse, får du litt ekstra informasjon i høyre rute. Ved siden av avdelingsinformasjonen får du tilsendt informasjon, hele SHA, forfatter, melding og dato. Du ser også listen over filer som er gjort under det forlovet, noe som er ekstremt nyttig for å hjelpe deg med å finne ut hva som forårsaket et problem under feilsøking.
Ved å dobbeltklikke på en forpliktelse vises en liste over filene som har endret seg i den forpliktelsen i venstre rute, og en versjonssammenligning vil bli vist foran og midt. Dette er kjent diff-perspektiv, men mye forbedret denne gangen.
Hvis du velger assistenteditoren øverst til høyre, kan du få tilgang til en virkelig god diff-visning, som gjør at du ikke bare kan se en diff av filen, men også krysse gjennom tidligere forpliktelser, og se begåinformasjonen så vel som den faktiske filendringer.
Ved å høyreklikke på en forpliktelse, kan du også se en meny som lar deg kontakte forfatteren, kopiere forpliktelsesinformasjonen, grenen fra den forpliktelsen eller til og med åpne forpliktelsen på GitHub i nettleseren.
Du kan også lage en tag, som er hva vi skal gjøre. Velg stikkord knappen på den første plikten, og navnet på den frigivelse / 0.1
.
Å navngi kodene dine i dette formatet, ved å sette inn en foreldergruppe (utgivelse, beta, etc.), tjener et interessant formål, som vi snart finner ut av. For nå, siden vi har merket et begå, vil vi seile inn i vårt neste emne: forgrening.
Vi utvikler for tiden på mastergrenen, men under normal utviklings arbeidsflyt vil vi vanligvis jobbe på en egen filial. Vi ville lage en filial for å utvikle og teste en funksjon, og deretter fusjonere den tilbake til hovedavdelingen når den fungerer som den skal. La oss lage en ny gren ved å høyreklikke herre og velg Gren fra mester. Ring den nye grenen readme_changes
.
Jeg vil demonstrere hvordan sammenslåing fungerer, så i den nye grenen, la oss begå våre endringer ved å velge Kildekontroll > Begå. Dette bringer oss tilbake til sammenligningsvisningen, noe som gir oss muligheten til å bekrefte alle endringene vi har gjort i denne forpliktelsen, med muligheten til å sammenligne våre endringer linje for linje.
Når du har sjekket over endringene, skriv inn en meldingsmelding som ligner på følgende. Og sørg for å sjekke Trykk på fjernkontrollen eske.
Når vår avdeling er ferdig, ønsker vi å slå sammen den tilbake til hovedgrenen. Høyreklikk på hovedgrenen og velg det andre fusjonen alternativet: Slå sammen fra "readme_changes" til "master".
Xcode vil deretter fusjonere og automatisk bytte deg tilbake til hovedgrenen. Bytter tilbake til hovedgrenen, vil du legge merke til en liten pil opp med tallet 1 til høyre for den nåværende grenen.
Dette lar oss vite at vi har et forpliktelse som må skyves til fjernregisteret. Hvis tellingen var 2, Vi ville være to forbinder foran fjernmesteren.
Omvendt, hvis det er nye oppdateringer i master som du ikke har trukket ennå, vil Xcode gi deg beskjed. Xcode vil hente fra fjernkontrollen og varsle deg med en nedpilen og telle at du er bak fjernkontrollen.
Tidligere skapte vi en merkelapp på en av de tidligere forpliktelsene. Hvis du ser på den primære ruten, kan du se et annet commit som er merket. Den venstre ruten gjør det enkelt å vise en kort liste over alle taggene, under grener.
Husk navnekonvensjonen vi brukte til vår tag, frigivelse / 0.1
. Vi gjorde det av en grunn. Å lage koder med et hierarkisk foreldre gjør at Xcode kan gruppere koder sammen.
I vårt tilfelle har vi to koder som tilhører utgivelse
foreldre tag. Vi kan lage flere logiske grupper for våre koder av forskjellige grunner, og Xcode gjør det enkelt å organisere våre koder.
Ved å velge en bestemt kode, viser vår forlovelseshistorikk bare forpliktelser som er relatert til den aktuelle taggen, noe som betyr at vi har et komplett kodingsmanifest for alle endringene som ble introdusert under en utgivelse. Dette vil hjelpe oss med å begrense eventuelle problematiske koder som er spesifikke for den utgivelsen.
Xcode 9 er en stor utgave, og en av de største nye funksjonene er at Apple endelig har integrert SCM som førsteklasses statsborger i IDE. Dette løser et langvarig grep mange utviklere har fortalt om hvordan Xcode klarte samarbeidende utvikling og versjonering.
I Xcode 9 blir ikke GitHub sømløst blandet inn i plattformen, men utviklere blir nå belønnet med et vakkert kodehåndteringsgrensesnitt i en ny SCM-fane. Utviklere får en endelig oversikt over kodehistorikken, begår, fusjoner, merking og forgrening, samt avanserte perspektiver for feilsøking og identifisering av forpliktelser som har introdusert feil. Git elskere og SCM avicionados vil virkelig sette pris på Apples initiativ til å konsolidere et virkelig kraftig Git styringsverktøy, alt innenfor IDE.
Mens du er her, sjekk ut noen av våre andre innlegg på Xcode, Swift og iOS app utvikling!