Običajna predpostavka je, da seja oddaljenega namizja premakne celotno razvojno okolje na vaš prenosnik. Premakne zaslon, tipkovnico in miško, nič drugega. IPhone mora doseči Mac, na katerem teče Xcode, in to je ločena povezava z lastnimi zahtevami glede zaupanja, prenosa in dovoljenj. Vse spodaj izhaja iz te delitve, in prav tu večina neuspešnih nastavitev izgubi pol dneva.

Mit: oddaljeno upravljanje premakne tudi napravo

Programska oprema oddaljenega namizja posreduje zaslon in vhodni tok, in ob dobri povezavi se zdi, kot da Mac sedi pred vami. Česar pa ne posreduje, je USB, in telefona tudi ne postavi v Macovo omrežje. Seja se konča na namizju Maca, kjer mora Xcode nato najti napravo po svojih pravilih. Domneva, da telefon potuje s pikami, je najpogostejša napaka v tej postavitvi.

Povezavi sta neodvisni, in ena je lahko brezhibna, medtem ko druga sploh ne obstaja. Popravilo seje namizja vam o poti do naprave ne pove ničesar.

Preden karkoli nastavite, določite, kje je telefon fizično

Če telefon ostane ob Macu, tam opravite običajno lokalno nastavitev: zaupajte računalniku, na napravi vklopite razvijalski način in potrdite, da Xcode nanjo gradi in jo poganja, ko sedite pred strojem. Oddaljeno namizje nato upravlja potek dela, ki že deluje. To je najcenejša postavitev in tista, ki ji je treba dati prednost, kadar to dopušča strojna oprema.

Če telefon potuje z vami in Mac ostane v pisarni, Mac potrebuje podprto pot do te naprave. VPN zagotovi omrežno pot med obema koncema in nič drugega: seznanjanje, razvijalski način, identiteta podpisa in registracija naprave ostajajo ločene zahteve. Tunel obravnavajte kot eno plast v skladu, ne kot samo povezavo.

Zapišite, v kateri od teh dveh postavitev ste. Vsako poznejše preverjanje je odvisno od tega, njuno mešanje pa daje popravke, ki ne morejo delovati.

Odkrivanje in prenos obravnavajte kot dve različni težavi

Xcode najde seznanjene brezžične naprave prek Bonjoura v lokalnem omrežju, doseže pa lahko tudi napravo na znanem naslovu prek Connect via IP Address. To sta dva mehanizma z dvema različnima načinoma okvare. Naprava, ki se nikoli ne pojavi na seznamu, in naprava, ki se pojavi, a se noče priklopiti, nista enak simptom, čeprav se oba bereta kot manjkajoči telefon.

Preden karkoli spremenite, poiščite obvestilo: dns-sd -B _apple-mobdev2._tcp navede storitev, ki jo seznanjeni telefon objavi na lokalni povezavi. Če se ne pojavi nič, je odkrivanje pokvarjena plast in ostane le povezava na podlagi naslova. Če se storitev pojavi, Xcode pa se še vedno ne more priklopiti, odkrivanje deluje, odpovedujeta pa prenos ali odnos zaupanja.

Appleova pomoč za brezžične naprave pokriva tako zahtevo po istem omrežju kot potek dela z naslovom, zato jo berite glede na nameščene različice, namesto da bi sledili poti v meniju, ki se je spomnite iz starejše izdaje. Oznake menijev se med izdajami Xcodea premikajo, tudi ko se mehanizem pod njimi ne spremeni.

Preverite, kaj Mac vidi s svojega mesta

Naštevanje zaženite na Macu in ne na prenosniku, ker je Mac stroj, ki napravo potrebuje. xcrun devicectl list devices izpiše naprave, do katerih Xcode lahko doseže, system_profiler SPUSBDataType pa pokaže, kaj je fizično priključeno. Telefon, ki je na drugem seznamu, ne pa na prvem, je priključen in ni seznanjen, kar je težava zaupanja in ne omrežja.

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

Če je naprava v drugem podomrežju, potrdite, da Mac lahko doseže naslov, ki ga telefon objavi, in ne pozabite, da so naslovi link-local IPv6 omejeni na eno povezavo in se ne usmerjajo skozi tunel. Zato sam VPN le redko naredi oddaljeni telefon viden: naslov, ki ga naprava oglašuje, ima smisel le v njenem lastnem segmentu.

Applova tehnična opomba TN3158 navaja, da od različice 15 Xcode komunicira s kabelsko priključeno napravo prek omrežnega vmesnika, zgrajenega na link-local IPv6, zato lahko lokalno filtriranje moti tudi fizično priključen telefon. Tak primer eskalirajte tistemu, ki upravlja politiko filtriranja, namesto da bi jo sami izklopili.

Dokažite z gradnjo, ne z ikono naprave

Vnos naprave na seznamu, zelen kazalnik v orodni vrstici ali uspešna zahteva za seznanjanje so vmesna opažanja. Potek dela je dokazan, ko Xcode namesti dovoljeno gradnjo in se razhroščevalnik priključi na proces, ki teče na napravi.

Zaženite celotno zaporedje z Maca. xcrun devicectl device install app --device DEVICE_UDID build/MyApp.app namesti brez IDE, kar loči težavo vmesnika Xcode od težave poti do naprave. Nato zaženite aplikacijo in nanjo priključite konzolo. Če namestitev iz ukazne vrstice deluje, IDE pa ne, je preostala napaka v shemi ali v konfiguraciji podpisa in ne v omrežju.

Postavitev naj bo ozka: en pooblaščeni razvijalec, en registriran Mac, ena naprava in dostop, ki se konča s sejo. Ko se postavitev konča, prekličite poverilnice. Če lahko telefon preprosto ostane ob Macu, izberite to, ker ima najpreprostejša podprta pot najmanj plasti za razhroščevanje.

Sorodni članki