Xcode-rako urruneko Maca: tokiko konpilazioa, urruneko konpilazioa edo pantaila partekatzea?
Muntatutako lan-eremu batek eta urruneko Xcode batek datu desberdinak mugitzen dituzte. Erabaki non bizi diren iturria, indizea eta konpilazioa, eta gero neurtu joan-etorriak.
Proiektu bat sarean partekatzeak ez du Xcode lekualdatzen, aplikazioak zure Mac-en lanean jarraitzen duelako eta zerbitzariari proiektuaren datuak eskatzen jarraitzen duelako. Urruneko Mac-en Xcode exekutatzea eta haren pantaila ikustea beste antolaketa bat da: aplikazioa eta bere fitxategiak elkarrekin geratzen dira, eta estekaren bidez pantaila eta zure sarrera soilik garraiatzen dira. Bi horietatik zein nahi duzun erabakitzeak, ezer konfiguratu aurretik, geroagoko nahasmenaren zatirik handiena konpontzen du.
Hiru antolaketak ohiko kasuei erantzuten diete, eta desberdinak dira lan-eremua non bizi den eta zein makinak konpilatzen duen. Idatzi bi puntuei buruzko zure erantzuna jarraitu aurretik.
Izenda ezazu Xcode exekutatzen duen makina
Lehen antolaketan dena tokikoa da: lan-kopia, indizea eta konpilazioa zure Mac-en bizi dira, eta sareak biltegiko eta mendekotasunen trafikoa soilik eramaten du. Bigarrenean proiektuak Xcode-ekin jarraitzen du urruneko Mac-en, beraz indexatzea eta konpilazioa fitxategien ondoan gertatzen dira, eta estekak pantailako edukia eta tekla-sakatzeak eramaten ditu. Hirugarrenean editatzea tokian gertatzen da eta konpilazioa urruneko ostalari batean exekutatzen da iturriaren berariazko entrega baten ondoren. Taulak izendatzen du zer mugitzen duen bakoitzak.
| Arrangement | Where the source lives | What crosses the link |
|---|---|---|
| Everything local | Local disk | Repository and dependency traffic |
| Remote Xcode, screen shared | Remote disk | Display frames and input events |
| Local edit, remote build | Both, with a handoff | Source transfer, then build output |
Irakurri erdiko zutabea lehenik, hark erabakitzen baitu non agertuko diren hutsegiteak. Iturria urrun duen lan-fluxua esteka motelekoa denean huts egiten du, eta urruneko konpilatzailea duen lan-fluxuak, berriz, entrega anbiguoa denean. Hirugarrenak soilik egiten zaitu biengatik erantzule.
Zenba itzazu joan-etorriak, ez megabyteak
Editore batek eta indexatzaile batek fitxategi-eragiketa txiki asko egiten dituzte, eta bakoitza joan-etorri bihurtzen da fitxategi-sistema urrun dagoenean. Horrek muntatutako lan-eremua latentziarekiko sentikor egiten du, kopia handi bakar bat sentikor ez den moduan, eta horregatik fitxategi-transferentzia baten denbora neurtzeak ia ezer ez dizu esaten lan-fluxuak nola sentitzen duen. Urruneko pantailak kontrako profila du: etengabeko korrontea mugitzen du eta zurrunbiloari atzerapenari baino hobeto eusten dio. Biak zenbaki bakar batekin alderatzeak ziurtasun handiko erantzun okerra sortzen du.
Antolaketa batek ere ez da berez azkarrena. Aukera zuzena benetan egiten duzun lanaren araberakoa da, eta horregatik hurrengo urratsa lana bera probatzea da, erreferentzia bat ez.
Egin iturriaren entrega berariazko
Bi makinek lan-kopia dutenean, erabaki zein den autoritatezkoa eta zein bertsio erabili zuen urruneko konpilazioak. Commit bat entrega argiagoa da zuhaitz lan muntatu bakarra editatzen duten bi tresnak baino, commitek identitatea baitu eta muntaiak ez. Sortutako irteerak eta indize-datuek ere jabea behar dute, iturritik berreraikitzen baitira eta ez bailukete bidaiatu iturri balira bezala. Konfliktuei buruzko araurik gabeko bi noranzko ispilua ez da lan-fluxua, lasterketa baizik.
Urrutitik konpilatzeak ere eskatzen du urruneko ostalariak tresna-kate egokia izatea eta mendekotasun pribatuetarako kredentzialak. Ostalarira iristeko aukera ematen dizun VPN batek ez dio zure konturako sarbidea uzten eta ez du Xcode han instalatzen.
Egiaztatu bidea lan-fluxu batekin konprometitu aurretik
Egiaztatu urruneko ostalaria haren inguruan diseinatu aurretik, eta gero neurtu esteka lan-fluxuak benetan egingo dituen eragiketekin. Beheko aginduek tresna-katea, garatzaile-direktorio aktiboa eta urruneko lan-eremuak mingarri egiten dituen fitxategi-behaketaren kostua egiaztatzen dituzte. Exekutatu azkena sare-bidearen bidez, ez tokian.
xcode-select -p
xcodebuild -version
ssh mac-builder 'xcodebuild -version'
time git status --porcelain
Xcode instalazio osoa ez duen ostalari batek errore bat itzultzen du xcodebuild-etik, eta hori tresna-katearen arazoa da, ez sarearena. Garatzaile-direktorioak erakusten du zein Xcode erabiliko duen konpilazioak, eta komando-lerroko tresnetara soilik seinalatzen duen bide batek aplikazioa instalatuta ez dagoela esan nahi du. Biltegiko egoera-komandoaren denbora neurtzeak muntatutako partekatzearen bidez joan-etorriaren kostua zuzenean agerian uzten du, eta tokiko exekuzio batekin alderatzeak garrantzitsua den zenbakia ematen du. Hutsune hori dagoeneko desatsegina bada, lan-eremu muntatuaren lan-fluxua okerragoa izango da editore erreal baten pean.
Erregistratu zein antolaketa aukeratu zenuen, zein makinak duen iturria eta nola funtzionatzen duen entrega. Ohar horrek hurrengo sarrera edo ordenagailu eramangarriaren ordezkapena ikerketa beharrean konfigurazio-zeregin bihurtzen du.