Xcode үшін қашықтағы Mac: жергілікті құрастыру, қашықтан құрастыру немесе экранды бөлісу?
Бекітілген жұмыс кеңістігі мен қашықтағы Xcode түрлі деректерді жылжытады. Дереккөз, индекстің және құрастырудың қайда тұратынын шешіп, кейін барыс-қайтуларды өлшеңіз.
Жобаны желі арқылы бөлісу Xcode-ты жылжытпайды, өйткені қолданба сіздің Mac-та жұмысын жалғастырады және серверден жоба деректерін сұрай береді. Xcode-ты қашықтағы Mac-та іске қосып, оның экранын көру — бұл басқа орналасу, онда қолданба мен оның файлдары бірге қалады, ал байланыс тек көрсетілім мен сіздің енгізуіңізді тасымалдайды. Бірдеңені баптамас бұрын осылардың қайсысын қалайтыныңызды шешу кейінгі шатасудың көп бөлігін шешеді.
Әдеттегі жағдайларды үш орналасу қамтиды және олар жұмыс кеңістігінің қайда тұратынымен және қай машинаның компиляциялайтынымен ерекшеленеді. Жалғастырмас бұрын екі тармақ бойынша жауабыңызды жазып алыңыз.
Xcode-ты іске қосатын машинаны атаңыз
Бірінші орналасуда бәрі жергілікті: жұмыс көшірмесі, индекс және құрастыру сіздің Mac-та тұрады, ал желі тек қойма мен тәуелділіктер трафигін тасымалдайды. Екіншісінде жоба Xcode-пен бірге қашықтағы Mac-та қалады, сондықтан индекстеу мен компиляция файлдардың жанында жүреді, ал байланыс экран мазмұны мен перне басуларын тасымалдайды. Үшіншісінде өңдеу жергілікті жүреді және айқын дереккөз тапсырудан кейін қашықтағы хостта құрастыру іске қосылады. Кесте әрқайсысының нені жылжытатынын атайды.
| 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 |
Алдымен ортаңғы бағанды оқыңыз, өйткені ол ақаулардың қайда пайда болатынын шешеді. Дереккөзі қашықтағы жұмыс ағыны байланыс баяу болғанда сәтсіз аяқталады, ал қашықтағы компиляторы бар жұмыс ағыны тапсыру екіұшты болғанда сәтсіз аяқталады. Тек үшіншісі сізді екеуі үшін де жауапты етеді.
Барыс-қайтуларды санаңыз, мегабайттарды емес
Өңдеуіш пен индекстеуші көптеген ұсақ файлдық операцияларды шығарады және файл жүйесі қашықтағы болғанда олардың әрқайсысы барыс-қайтуға айналады. Бұл бекітілген жұмыс кеңістігін бір үлкен көшірме сезбейтіндей дәрежеде кідіріске сезімтал етеді, сондықтан файл тасымалының уақытын өлшеу жұмыс ағыны қандай сезілетіні туралы дерлік ештеңе айтпайды. Қашықтағы дисплейдің кері бейіні бар: ол үздіксіз ағынды жылжытады және кідірістен гөрі өткізу қабілетін жақсы көтереді. Екеуін бір санмен салыстыру сенімді қате жауап береді.
Ешбір орналасу табиғатынан ең жылдам емес. Дұрыс таңдау іс жүзінде жасайтын жұмысыңызға байланысты, сондықтан келесі қадам — эталон емес, сол жұмысты сынап көру.
Дереккөз тапсыруды айқын етіңіз
Екі машина да жұмыс көшірмесін ұстағанда, қайсысының өкілетті екенін және қашықтағы құрастыру қай нұсқаны қолданғанын шешіңіз. Коммит — бір бекітілген жұмыс ағашын екі құрал өңдегеннен гөрі айқынырақ тапсыру, өйткені коммиттің сәйкестігі бар, ал бекітудің жоқ. Жасалған шығыс пен индекс деректеріне де ие қажет, өйткені олар дереккөзден қайта құрылады және дереккөз сияқты саяхаттамауы керек. Қақтығыс ережелері жоқ екі жақты айна — бұл жұмыс ағыны емес, жарыс.
Қашықтан құрастыру сонымен қатар қашықтағы хосттың дұрыс құралдар тізбегі болуын талап етеді және жеке тәуелділіктерге арналған тіркелгі деректерін талап етеді. Хостқа жетуге мүмкіндік беретін VPN сіздің тіркелгіңізге қатынауды оған қарызға бермейді және ол жерге Xcode орнатпайды.
Жұмыс ағынына байланбас бұрын жолды тексеріңіз
Қашықтағы хостты оның айналасында жобаламас бұрын тексеріңіз, содан кейін байланысты жұмыс ағыны іс жүзінде орындайтын операциялармен өлшеңіз. Төмендегі командалар құралдар тізбегін, белсенді әзірлеуші каталогын және қашықтағы жұмыс кеңістіктерін азапты ететін файлды бақылау құнын тексереді. Соңғысын жергілікті емес, желі жолымен орындаңыз.
xcode-select -p
xcodebuild -version
ssh mac-builder 'xcodebuild -version'
time git status --porcelain
Толық Xcode орнатылмаған хост xcodebuild-тен қате қайтарады, және бұл желі емес, құралдар тізбегінің мәселесі. Әзірлеуші каталогы құрастыру қай Xcode-ты қолданатынын көрсетеді, ал тек пәрмен жолы құралдарын нұсқайтын жол қолданбаның орнатылмағанын білдіреді. Бекітілген ортақ ресурс арқылы қойма күйі командасының уақытын өлшеу барыс-қайту құнын тікелей ашады, ал жергілікті іске қосумен салыстыру маңызды санды береді. Егер бұл алшақтық қазірдің өзінде жағымсыз болса, бекітілген жұмыс кеңістігінің ағыны нақты редактор астында одан да нашар болады.
Қай орналасуды таңдағаныңызды, дереккөзге қай машина ие екенін және тапсыру қалай жұмыс істейтінін жазыңыз. Бұл жазба келесі бейімделуді немесе ноутбукті ауыстыруды тергеу емес, баптау міндетіне айналдырады.