Әдеттегі болжам — алыстағы жұмыс үстелі сессиясы бүкіл әзірлеу ортасын ноутбугіңізге көшіреді деп ойлау. Ол экранды, пернетақта мен тінтуірді жылжытады, басқа ештеңе жоқ. iPhone Xcode іске қосылған Mac-ке жетуі керек, ал бұл — өзінің сенім, тасымал және рұқсат талаптары бар бөлек байланыс. Төмендегілердің бәрі осы бөлінуден туындайды, және көптеген сәтсіз конфигурациялар жарты күнін дәл осы жерде жоғалтады.

Аңыз: қашықтан басқару құрылғыны да көшіреді

Алыстағы жұмыс үстелі бағдарламасы дисплей мен енгізу ағынын жібереді, жақсы байланыста Mac алдыңызда отырғандай әсер қалдырады. Бірақ ол USB-ді жібермейді және телефонды Mac желісіне орналастырмайды. Сессия Mac жұмыс үстелінде аяқталады, онда Xcode өз ережелері бойынша құрылғыны табуға тиіс. Телефон пикселдермен бірге жүреді деп ойлау — бұл конфигурациядағы ең жиі қате.

Екі байланыс тәуелсіз, біреуі мінсіз болуы мүмкін, ал екіншісі мүлде болмауы мүмкін. Жұмыс үстелі сессиясын жөндеу құрылғы жолы туралы ештеңе айтпайды.

Бірдеңе конфигурацияламас бұрын телефонның физикалық орнын анықтаңыз

Егер телефон Mac жанында қалса, сол жерде әдеттегі жергілікті конфигурацияны жасаңыз: компьютерге сенім білдіріңіз, құрылғыда әзірлеуші режимін қосыңыз және машинаның алдында отырған кезде Xcode оған құрастырып, іске қосатынын растаңыз. Содан кейін алыстағы жұмыс үстелі қазірдің өзінде жұмыс істеп тұрған жұмыс ағынын басқарады. Бұл ең арзан конфигурация және аппараттық құрал мүмкіндік берсе, таңдау керек нұсқа.

Егер телефон сізбен бірге жүрсе, ал Mac кеңседе қалса, Mac сол құрылғыға қолдау көрсетілетін жолға ие болуы керек. VPN екі ұштың арасында желілік маршрут береді және басқа ештеңе бермейді: жұптау, әзірлеуші режимі, қолтаңба жеке басы және құрылғыны тіркеу — бәрі бөлек талап болып қалады. Туннельді байланыстың өзі ретінде емес, стектің бір қабаты ретінде қарастырыңыз.

Осы екі конфигурацияның қайсысында екеніңізді жазып қойыңыз. Кейінгі әрбір тексеру соған байланысты, ал оларды шатастыру жұмыс істей алмайтын түзетулерге әкеледі.

Анықтауды және тасымалды екі бөлек мәселе ретінде қарастырыңыз

Xcode жұпталған сымсыз құрылғыларды жергілікті желідегі Bonjour арқылы табады, сонымен қатар Connect via IP Address арқылы белгілі мекенжай бойынша құрылғыға қол жеткізе алады. Бұл — екі түрлі істен шығу режимі бар екі механизм. Тізімде ешқашан көрінбейтін құрылғы мен көрінетін, бірақ қосылудан бас тартатын құрылғы бірдей симптом емес, дегенмен екеуі де жоғалған телефон болып оқылады.

Бірдеңені өзгертуден бұрын жарнаманы іздеп көріңіз: dns-sd -B _apple-mobdev2._tcp жұпталған телефонның жергілікті сілтемеде жариялайтын қызметін тізімдейді. Егер ештеңе көрінбесе, анықтау — бұзылған қабат, ал мекенжайға негізделген байланыс қана қалады. Егер қызмет көрінсе, бірақ Xcode әлі де қосыла алмаса, анықтау жұмыс істейді, ал тасымал немесе сенім қатынасы сәтсіздікке ұшырайды.

Apple компаниясының сымсыз құрылғылар туралы анықтамасы бір желі талабын да, мекенжай жұмыс ағынын да қамтиды, сондықтан оны ескі шығарылымнан есте қалған мәзір жолын ұстанбай, орнатылған нұсқаларыңызға қарап оқыңыз. Механизм астында өзгермесе де, мәзір белгілері Xcode шығарылымдары арасында орын ауыстырады.

Mac өз орнынан нені көре алатынын тексеріңіз

Санаманы ноутбугіңізде емес, Mac жүйесінде іске қосыңыз, өйткені құрылғыны қажет ететін машина — Mac. xcrun devicectl list devices Xcode қол жеткізе алатын құрылғыларды басып шығарады, ал system_profiler SPUSBDataType физикалық қосылғанды көрсетеді. Екінші тізімде көрінетін, бірақ біріншісінде жоқ телефон — қосылған, бірақ жұпталмаған, бұл желі мәселесі емес, сенім мәселесі.

xcrun devicectl list devices
system_profiler SPUSBDataType | grep -i iphone
xcrun devicectl device info DEVICE_UDID

Егер құрылғы басқа ішкі желіде болса, Mac телефон жариялайтын мекенжайға қол жеткізе алатынын растаңыз және link-local IPv6 мекенжайлары бір сілтемеге ғана қатысты екенін және туннель арқылы маршрутталмайтынын ұмытпаңыз. Сондықтан жалғыз VPN алыстағы телефонды сирек көрсетеді: құрылғы жариялайтын мекенжай тек өз сегментінде мағыналы.

Apple техникалық жазбасы TN3158 15 нұсқасынан бастап Xcode кабельді құрылғымен link-local IPv6 негізіндегі желілік интерфейс арқылы сөйлесетінін айтады, сондықтан жергілікті сүзгілеу физикалық қосылған телефонға да кедергі келтіруі мүмкін. Бұл жағдайды сүзгілеу саясатына жауапты адамға жеткізіңіз, оны өзіңіз өшірмеңіз.

Оны құрылғы белгісімен емес, құрастырумен дәлелдеңіз

Тізімдегі құрылғы жазбасы, құралдар тақтасындағы жасыл индикатор немесе сәтті жұптау сұранысы — аралық бақылаулар. Жұмыс ағыны Xcode рұқсат етілген құрастыруды орнатып, отладчик құрылғыда жұмыс істеп тұрған процеске қосылғанда дәлелденеді.

Толық реттілікті Mac жүйесінен іске қосыңыз. xcrun devicectl device install app --device DEVICE_UDID build/MyApp.app IDE-сіз орнатады, бұл Xcode интерфейсінің мәселесін құрылғы жолының мәселесінен ажыратады. Содан кейін қолданбаны іске қосып, оған консольді қосыңыз. Егер пәрмен жолынан орнату жұмыс істеп, IDE істемесе, қалған ақау желіде емес, схемада немесе қолтаңба конфигурациясында.

Конфигурацияны тар ұстаңыз: бір уәкілетті әзірлеуші, бір тіркелген Mac, бір құрылғы және сессия аяқталғанда аяқталатын қатынас. Конфигурация тоқтағанда тіркелгі деректерін қайтарып алыңыз. Егер телефон Mac жанында қала алса, соны таңдаңыз, өйткені ең қарапайым қолдау көрсетілетін жол — ретке келтіретін қабаттары ең аз жол.

Қатысты мақалалар