Egy projekt hálózaton keresztüli megosztása nem helyezi át az Xcode-ot, mert az alkalmazás tovább fut a Mac gépén, és tovább kérdezi a szervertől a projekt adatait. Az Xcode futtatása a távoli Macen és a képernyőjének nézése más elrendezés, amelyben az alkalmazás és a fájljai együtt maradnak, és a kapcsolat csak a megjelenítést és a bemenetet szállítja. Annak eldöntése, melyiket szeretné, mielőtt bármit beállítana, a későbbi zavar nagy részét megoldja.

Három elrendezés fedi le a szokásos eseteket, és abban különböznek, hol él a munkaterület, és melyik gép fordít. A folytatás előtt írja le a válaszát mindkét pontra.

Nevezze meg a gépet, amely az Xcode-ot futtatja

Az első elrendezésben minden helyi: a munkamásolat, az index és a build a Mac gépén él, és a hálózat csak a tároló és a függőségek forgalmát szállítja. A másodikban a projekt az Xcode-dal együtt a távoli Macen marad, így az indexelés és a fordítás a fájlok mellett történik, miközben a kapcsolat képernyőtartalmat és billentyűleütéseket szállít. A harmadikban a szerkesztés helyben történik, és a build egy kifejezett forrásátadás után egy távoli gazdagépen fut. A táblázat megnevezi, mit mozgat mindegyik.

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

Először a középső oszlopot olvassa el, mert az dönti el, hol jelennek meg a hibák. Az a munkafolyamat, amelynek a forrása távoli, akkor hibázik, amikor a kapcsolat lassú, míg a távoli fordítóval rendelkező munkafolyamat akkor hibázik, amikor az átadás kétértelmű. Csak a harmadik tesz felelőssé mindkettőért.

Az oda-vissza utakat számolja, ne a megabájtokat

Egy szerkesztő és egy indexelő sok kis fájlműveletet bocsát ki, és mindegyik oda-vissza úttá válik, amikor a fájlrendszer távoli. Ez érzékennyé teszi a felcsatolt munkaterületet a késleltetésre oly módon, ahogy egyetlen nagy másolat nem az, ezért egy fájlátvitel időmérése szinte semmit sem mond arról, milyen érzés a munkafolyamat. A távoli megjelenítés profilja az ellenkező: folyamatos adatfolyamot mozgat, és az átbocsátást jobban tűri, mint a késleltetést. A kettőt egyetlen számmal összehasonlítva magabiztos hibás választ kap.

Egyik elrendezés sem természeténél fogva a leggyorsabb. A helyes választás attól függ, milyen munkát végez valójában, ezért a következő lépés az, hogy kipróbálja azt a munkát, nem pedig egy viszonyítási pontot.

Tegye kifejezetté a forrásátadást

Amikor mindkét gép munkamásolatot tart, döntse el, melyik a hiteles, és melyik revíziót használta a távoli build. Egy commit világosabb átadás, mint két eszköz, amely egy felcsatolt munkafát szerkeszt, mert a commitnak van identitása, a csatolásnak nincs. A generált kimenetnek és az indextárolt adatoknak is kell gazda, mert a forrásból épülnek újra, és nem úgy kellene utazniuk, mintha forrás lennének. A konfliktusszabályok nélküli kétirányú tükör nem munkafolyamat, hanem verseny.

A távolról történő buildhez az is szükséges, hogy a távoli gazdagépen a megfelelő eszközlánc legyen és meglegyenek a magánfüggőségek hitelesítő adatai. Az a VPN, amely elérést ad a gazdagéphez, nem adja kölcsön a fiókhozzáférését, és nem telepít oda Xcode-ot.

Ellenőrizze az utat, mielőtt elkötelezné magát egy munkafolyamat mellett

Ellenőrizze a távoli gazdagépet, mielőtt köré tervezne, majd mérje meg a kapcsolatot azokkal a műveletekkel, amelyeket a munkafolyamat valóban végrehajt. Az alábbi parancsok ellenőrzik az eszközláncot, az aktív fejlesztői könyvtárat és a fájlmegfigyelés költségét, amely fájdalmassá teszi a távoli munkaterületeket. Az utolsót a hálózati útvonalon futtassa, nem helyben.

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

A teljes Xcode-telepítés nélküli gazdagép hibát ad vissza az xcodebuildtől, és ez eszközlánc-probléma, nem hálózati probléma. A fejlesztői könyvtár megmutatja, melyik Xcode-ot fogja használni a build, és a csak a parancssori eszközökre mutató útvonal azt jelenti, hogy az alkalmazás nincs telepítve. A tároló állapotparancsának időmérése a felcsatolt megosztáson keresztül közvetlenül feltárja az oda-vissza út költségét, és a helyi futtatással való összehasonlítás megadja a számot, amely számít. Ha ez a szakadék már most kellemetlen, a felcsatolt munkaterület munkafolyamata rosszabb lesz egy igazi szerkesztő alatt.

Jegyezze fel, melyik elrendezést választotta, melyik gép birtokolja a forrást, és hogyan működik az átadás. Ez a feljegyzés a következő beilleszkedést vagy laptopcserét konfigurációs feladattá teszi vizsgálódás helyett.

Kapcsolódó cikkek