Uobičajena pretpostavka je da sesija udaljene radne površine premješta cijelo razvojno okruženje na vaš laptop. Ona premješta ekran, tastaturu i miš, i ništa drugo. iPhone mora doći do Maca na kojem se izvršava Xcode, a to je zasebna veza sa vlastitim zahtjevima za povjerenje, prijenos i dozvole. Sve ispod slijedi iz te podjele, a upravo na njoj većina neuspjelih postavki izgubi jedno poslijepodne.

Mit: daljinsko upravljanje premješta i uređaj

Softver za udaljenu radnu površinu prosljeđuje prikaz i tok unosa, i na dobroj vezi izgleda kao da Mac sjedi pred vama. Ono što ne prosljeđuje je USB, a ni telefon ne stavlja na Macovu mrežu. Sesija završava na Macovoj radnoj površini, gdje Xcode zatim mora pronaći uređaj po vlastitim pravilima. Pretpostavka da telefon putuje s pikselima najčešća je greška u ovom rasporedu.

Dvije veze su neovisne, i jedna može biti savršena dok druga uopće ne postoji. Popravljanje sesije radne površine ne govori vam ništa o putu do uređaja.

Odredite gdje se telefon fizički nalazi prije nego što bilo što konfigurirate

Ako telefon ostaje pored Maca, obavite uobičajenu lokalnu postavku tamo: dajte povjerenje računalu, omogućite razvojni način rada na uređaju i potvrdite da Xcode gradi i pokreće se na njemu dok sjedite pred strojem. Udaljena radna površina tada upravlja tokom rada koji već funkcionira. To je najjeftiniji raspored i onaj koji treba preferirati kad hardver to dopušta.

Ako telefon putuje s vama, a Mac ostaje u uredu, Mac treba podržan put do tog uređaja. VPN pruža mrežnu rutu između dvaju krajeva i ne pruža ništa drugo: uparivanje, razvojni način, identitet potpisivanja i registracija uređaja ostaju zasebni zahtjevi. Tretirajte tunel kao jedan sloj u stogu, a ne kao samu vezu.

Zapišite u kojem se od tih dvaju rasporeda nalazite. Svaka kasnija provjera ovisi o tome, a njihovo miješanje daje popravke koji ne mogu raditi.

Tretirajte otkrivanje i prijenos kao dva različita problema

Xcode pronalazi uparene bežične uređaje putem Bonjoura na lokalnoj mreži, a može dosegnuti i uređaj na poznatoj adresi putem Connect via IP Address. To su dva mehanizma s dva različita načina otkazivanja. Uređaj koji se nikad ne pojavi na popisu i uređaj koji se pojavi ali odbija priključiti nisu isti simptom, iako se oba čitaju kao telefon koji nedostaje.

Pregledajte objavu prije nego što bilo što promijenite: dns-sd -B _apple-mobdev2._tcp navodi uslugu koju upareni telefon objavljuje na lokalnoj vezi. Ako se ništa ne pojavi, otkrivanje je pokvareni sloj i veza utemeljena na adresi jedini je preostali put. Ako se usluga pojavi ali Xcode se još ne može priključiti, otkrivanje radi, a otkazuje prijenos ili odnos povjerenja.

Appleova pomoć za bežične uređaje pokriva i zahtjev iste mreže i tijek rada s adresom, pa je čitajte prema instaliranim verzijama umjesto da slijedite put izbornika zapamćen iz starijeg izdanja. Oznake izbornika mijenjaju se između izdanja Xcodea čak i kad se mehanizam ispod njih ne mijenja.

Provjerite što Mac vidi sa svog mjesta

Pokrenite nabrajanje na Macu, a ne na svom laptopu, jer je Mac stroj kojemu uređaj treba. xcrun devicectl list devices ispisuje uređaje do kojih Xcode može doći, a system_profiler SPUSBDataType pokazuje što je fizički priključeno. Telefon koji se pojavi na drugom popisu ali ne na prvom priključen je i nije uparen, što je problem povjerenja, a ne mreže.

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

Ako se uređaj nalazi na drugoj podmreži, potvrdite da Mac može doći do adrese koju telefon objavljuje, i zapamtite da su IPv6 adrese lokalne za vezu ograničene na jednu vezu i nisu usmjerive kroz tunel. Zato samo VPN rijetko učini udaljeni telefon vidljivim: adresa koju uređaj oglašava ima smisla samo na njegovu vlastitom segmentu.

Appleova tehnička bilješka TN3158 navodi da od verzije 15 Xcode razgovara s kabelom povezanim uređajem preko mrežnog sučelja izgrađenog na IPv6 adresi lokalnoj za vezu, pa lokalno filtriranje može smetati čak i telefonu koji je fizički priključen. Eskalirajte taj slučaj vlasniku politike filtriranja umjesto da je sami isključite.

Dokažite to gradnjom, a ne ikonom uređaja

Unos uređaja na popisu, zeleni pokazatelj u alatnoj traci ili uspješan upit za uparivanje međuzapažanja su. Tijek rada dokazan je kada Xcode instalira dopuštenu gradnju i kada se otklanjač grešaka priključi na proces koji radi na uređaju.

Provedite cijeli slijed s Maca. xcrun devicectl device install app --device DEVICE_UDID build/MyApp.app instalira bez IDE-a, što odvaja problem Xcodeova sučelja od problema puta do uređaja. Zatim pokrenite aplikaciju i priključite konzolu na nju. Ako instalacija iz naredbenog retka radi a IDE ne, preostala je greška u shemi ili konfiguraciji potpisivanja, a ne u mreži.

Držite raspored uskim: jedan ovlašteni razvijač, jedan registrirani Mac, jedan uređaj i pristup koji završava kad završi sesija. Opozovite vjerodajnice kad raspored prestane. Ako telefon može jednostavno ostati pokraj Maca, odaberite to, jer najjednostavniji podržani put je onaj s najmanje preostalih slojeva za otklanjanje grešaka.

Povezani članci