Att dela ett projekt över nätverket flyttar inte Xcode, eftersom appen fortsätter köra på din Mac och fortsätter fråga servern efter projektdata. Att köra Xcode på fjärr-Macen och titta på dess skärm är ett annat upplägg, där appen och dess filer stannar tillsammans och länken bara bär bilden och din inmatning. Att bestämma vilket av dem du vill ha, innan du konfigurerar något, löser det mesta av den senare förvirringen.

Tre upplägg täcker de vanliga fallen, och de skiljer sig i var arbetsytan bor och vilken maskin som kompilerar. Skriv ned ditt svar på båda punkterna innan du fortsätter.

Namnge maskinen som kör Xcode

I det första upplägget är allt lokalt: arbetskopian, indexet och bygget bor alla på din Mac, och nätverket bär bara trafiken till arkivet och beroendena. I det andra stannar projektet på fjärr-Macen med Xcode, så indexering och kompilering sker bredvid filerna medan länken bär skärminnehåll och tangenttryckningar. I det tredje sker redigeringen lokalt och ett bygge körs på en fjärrvärd efter en uttrycklig källöverlämning. Tabellen namnger vad var och en flyttar.

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

Läs mittkolumnen först, eftersom den avgör var felen kommer att synas. Ett arbetsflöde vars källa är fjärransluten misslyckas när länken är långsam, medan ett arbetsflöde med en fjärrkompilator misslyckas när överlämningen är otydlig. Bara det tredje gör dig ansvarig för båda.

Räkna tur-och-retur-resorna, inte megabyten

En redigerare och en indexerare utfärdar många små filoperationer, och var och en blir en tur och retur när filsystemet är fjärranslutet. Det gör en monterad arbetsyta känslig för latens på ett sätt som en enda stor kopia inte är, vilket är varför tidtagning av en filöverföring nästan ingenting säger om hur arbetsflödet känns. Fjärrvisning har den motsatta profilen: den flyttar en kontinuerlig ström och tål genomströmning bättre än fördröjning. Att jämföra de två med ett enda tal ger ett självsäkert felaktigt svar.

Inget upplägg är snabbast av naturen. Det rätta valet beror på arbetet du faktiskt utför, vilket är varför nästa steg är att prova det arbetet i stället för ett riktmärke.

Gör källöverlämningen uttrycklig

När båda maskinerna har en arbetskopia, bestäm vilken som är auktoritativ och vilken revision fjärrbygget använde. En commit är en tydligare överlämning än två verktyg som redigerar ett enda monterat arbetsträd, eftersom commiten har en identitet och monteringen inte. Genererad utdata och indexdata behöver också en ägare, eftersom de byggs om från källan och inte bör färdas som om de vore källan. En dubbelriktad spegel utan konfliktregler är inte ett arbetsflöde, det är en kapplöpning.

Att bygga på distans kräver också att fjärrvärden har rätt verktygskedja och inloggningsuppgifterna för privata beroenden. En VPN som låter dig nå värden lånar inte ut din kontobehörighet till den och installerar inte Xcode där.

Kontrollera vägen innan du binder dig till ett arbetsflöde

Verifiera fjärrvärden innan du bygger runt den, och mät sedan länken med de operationer som arbetsflödet faktiskt kommer att utföra. Kommandona nedan kontrollerar verktygskedjan, den aktiva utvecklarkatalogen och den filobserveringskostnad som gör fjärranslutna arbetsytor smärtsamma. Kör det sista via nätverksvägen i stället för lokalt.

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

En värd utan en fullständig Xcode-installation returnerar ett fel från xcodebuild, vilket är ett verktygskedjeproblem snarare än ett nätverksproblem. Utvecklarkatalogen visar vilken Xcode bygget kommer att använda, och en sökväg som bara pekar på kommandoradsverktygen betyder att appen inte är installerad. Tidtagning av kommandot för arkivstatus över den monterade delningen avslöjar tur-och-retur-kostnaden direkt, och en jämförelse med en lokal körning ger talet som betyder något. Om den skillnaden redan är obehaglig blir arbetsflödet med monterad arbetsyta värre under en riktig redigerare.

Anteckna vilket upplägg du valde, vilken maskin som äger källan och hur överlämningen fungerar. Den anteckningen gör nästa introduktion eller laptopbyte till en konfigurationsuppgift i stället för en utredning.

Relaterade artiklar