Ne možete jednostavno priključiti iPhone na udaljeni Mac za Xcode
Udaljena radna površina pokazuje vam Xcode, a ne iPhone na vašem stolu. Uparite uređaj s Macom koji gradi, a otkrivanje tretirajte odvojeno od transporta.
Uobičajena pretpostavka je da sesija udaljene radne površine premješta cijelo razvojno okruženje na vaš laptop. Premješta ekran, tipkovnicu i miš, i ništa drugo. iPhone mora doći do Maca na kojem radi Xcode, a to je zasebna veza sa svojim zahtjevima za povjerenje, transport i dozvole. Sve ispod proizlazi iz te podjele, i upravo tu većina neuspjelih postavki izgubi pola dana.
Mit: daljinsko upravljanje premješta i uređaj
Softver udaljene radne površine prosljeđuje ekran i tok unosa, i na dobroj vezi izgleda kao da Mac sjedi pred vama. Ono što ne prosljeđuje je USB, i ne stavlja telefon u mrežu Maca. Sesija završava na radnoj površini Maca, gdje Xcode zatim mora pronaći uređaj po vlastitim pravilima. Pretpostavka da telefon putuje s pikselima najčešća je greška u ovakvom 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.
Odlučite gdje se telefon fizički nalazi prije nego što bilo što konfigurirate
Ako telefon ostaje pokraj Maca, tamo napravite uobičajenu lokalnu postavku: vjerujte računalu, uključite razvojni način rada na uređaju i potvrdite da Xcode gradi i pokreće 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, Macu treba podržan put do tog uređaja. VPN pruža mrežnu rutu između dva kraja i ne pruža ništa drugo: uparivanje, razvojni način, identitet potpisa 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 ta dva rasporeda nalazite. Svaka kasnija provjera ovisi o tome, a njihovo miješanje daje ispravke koje ne mogu raditi.
Tretirajte otkrivanje i transport 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 kvara. Uređaj koji se nikad ne pojavi na popisu i uređaj koji se pojavi ali odbija priključiti se nisu isti simptom, iako se oba čitaju kao telefon koji nedostaje.
Potražite oglas 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 preostaje samo veza temeljena na adresi. Ako se usluga pojavi ali se Xcode još uvijek ne može priključiti, otkrivanje radi, a otkazuje transport ili odnos povjerenja.
Appleova pomoć za bežične uređaje pokriva i zahtjev iste mreže i tok rada s adresom, pa je čitajte prema instaliranim verzijama umjesto da slijedite put u izborniku zapamćen iz starijeg izdanja. Oznake izbornika sele se između izdanja Xcodea čak i kad se mehanizam ispod ne mijenja.
Provjerite što Mac vidi sa svog mjesta
Pokrenite nabrajanje na Macu, a ne na laptopu, jer je Mac stroj kojem treba uređaj. 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 pojavljuje 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_UDIDAko je uređaj u drugoj podmreži, potvrdite da Mac može doći do adrese koju telefon objavljuje, i zapamtite da su link-local IPv6 adrese ograničene na jednu vezu i ne rutiraju se kroz tunel. Zato sam VPN rijetko učini udaljeni telefon vidljivim: adresa koju uređaj oglašava ima smisla samo u njegovom 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 link-local IPv6, pa lokalno filtriranje može smetati čak i fizički priključenom telefonu. Eskalirajte taj slučaj onome koji posjeduje politiku filtriranja umjesto da je sami isključite.
Dokažite to gradnjom, a ne ikonom uređaja
Zapis uređaja na popisu, zeleni pokazivač u alatnoj traci ili uspješan zahtjev za uparivanje međuopažanja su. Tok rada dokazan je kad Xcode instalira dopuštenu gradnju i debager se priključi na proces koji radi na uređaju.
Pokrenite 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 u konfiguraciji potpisa, 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 jednostavno može ostati pokraj Maca, odaberite to, jer najjednostavniji podržani put ima najmanje slojeva za debagiranje.