Projekti jagamine võrgu kaudu ei vii Xcode'i mujale, sest rakendus töötab edasi sinu Macis ja küsib serverilt jätkuvalt projekti andmeid. Xcode'i käivitamine kaughost Macis ja selle ekraani vaatamine on teine lahendus, kus rakendus ja selle failid püsivad koos ning ühendus kannab ainult kuva ja sinu sisendi. Otsustamine, millist neist sa tahad, enne kui midagi seadistad, lahendab suurema osa hilisemast segadusest.

Tavajuhtumeid katavad kolm lahendust ja need erinevad selle poolest, kus tööruum asub ja milline masin kompileerib. Kirjuta oma vastus mõlema punkti kohta enne jätkamist.

Nimeta masin, mis käivitab Xcode'i

Esimeses lahenduses on kõik kohalik: töökope, indeks ja ehitus asuvad kõik sinu Macis ning võrk kannab ainult hoidla ja sõltuvuste liiklust. Teises jääb projekt koos Xcode'iga kaughost Maci, nii et indekseerimine ja kompileerimine toimuvad failide kõrval, samal ajal kui ühendus kannab ekraani sisu ja klahvivajutusi. Kolmandas toimub redigeerimine kohapeal ja ehitus jookseb kaughostis pärast selgesõnalist lähtekoodi üleandmist. Tabel nimetab, mida igaüks liigutab.

ArrangementWhere the source livesWhat crosses the link
Everything localLocal diskRepository and dependency traffic
Remote Xcode, screen sharedRemote diskDisplay frames and input events
Local edit, remote buildBoth, with a handoffSource transfer, then build output

Loe kõigepealt keskmist veergu, sest see otsustab, kus tõrked ilmuvad. Töövoog, mille lähtekood on kaugel, ebaõnnestub, kui ühendus on aeglane, samas kui kaugkompilaatoriga töövoog ebaõnnestub, kui üleandmine on mitmetähenduslik. Ainult kolmas teeb sind mõlema eest vastutavaks.

Loe edasi-tagasi käike, mitte megabaite

Redaktor ja indekseerija teevad palju väikeseid failitoiminguid ja igaüks neist muutub edasi-tagasi käiguks, kui failisüsteem on kaugel. See muudab ühendatud tööruumi latentsusele tundlikuks nii, nagu üks suur koopia ei ole, mistõttu failiülekande ajastamine ei ütle sulle peaaegu midagi selle kohta, kuidas töövoog tundub. Kaugkuval on vastupidine profiil: see liigutab pidevat voogu ja talub läbilaskevõimet paremini kui hilinemist. Kahe võrdlemine ühe numbriga annab enesekindla vale vastuse.

Kumbki lahendus ei ole loomult kiireim. Õige valik sõltub tööst, mida sa tegelikult teed, mistõttu on järgmine samm proovida seda tööd, mitte võrdlusalust.

Tee lähtekoodi üleandmine selgesõnaliseks

Kui mõlemal masinal on töökope, otsusta, milline on autoriteetne ja millist redaktsiooni kaug ehitus kasutas. Commit on selgem üleandmine kui kaks tööriista, mis redigeerivad ühte ühendatud tööpuud, sest commitil on identiteet ja ühendusel mitte. Genereeritud väljund ja indeksiandmed vajavad samuti omanikku, sest need ehitatakse lähtekoodist uuesti üles ja ei peaks reisima nii, nagu oleksid need lähtekood. Kahesuunaline peegel ilma konfliktireegliteta ei ole töövoog, vaid võidujooks.

Kaugelt ehitamine nõuab ka et kaughostil oleks õige tööriistakett ja eraviisiliste sõltuvuste volitused. VPN, mis laseb sul hostini jõuda, ei laena talle sinu konto juurdepääsu ega paigalda sinna Xcode'i.

Kontrolli teed, enne kui kohustud töövooga

Kontrolli kaughosti enne selle ümber projekteerimist, seejärel mõõda ühendust toimingutega, mida töövoog tegelikult teeb. Allolevad käsud kontrollivad tööriistaketti, aktiivset arendajakataloogi ja failide jälgimise kulu, mis teeb kaughost tööruumid valulikuks. Käivita viimane võrgutee kaudu, mitte kohapeal.

xcode-select -p
xcodebuild -version
ssh mac-builder 'xcodebuild -version'
time git status --porcelain

Host, millel pole täielikku Xcode'i paigaldust, tagastab xcodebuildilt vea ja see on tööriistaketi, mitte võrgu probleem. Arendajakataloog näitab, millist Xcode'i ehitus kasutab, ja ainult käsurea tööriistadele osutav tee tähendab, et rakendus pole paigaldatud. Hoidla olekukäsu ajastamine ühendatud jagatise kaudu paljastab edasi-tagasi käigu kulu otseselt ja kohaliku jooksuga võrdlemine annab numbri, mis loeb. Kui see vahe on juba ebameeldiv, on ühendatud tööruumiga töövoog tõelise redaktori all hullem.

Pane kirja, millise lahenduse valisid, milline masin omab lähtekoodi ja kuidas üleandmine töötab. See märge muudab järgmise sisseelamise või sülearvuti vahetuse uurimise asemel seadistusülesandeks.

Seotud artiklid