A szokásos feltételezés, hogy egy távoli asztal munkamenet az egész fejlesztőkörnyezetet átviszi a laptopjára. Átviszi a képernyőt, a billentyűzetet és az egeret, és semmi mást. Az iPhone-nak el kell érnie azt a Macet, amelyen az Xcode fut, és ez külön kapcsolat, saját bizalmi, szállítási és engedélyezési követelményekkel. Az alábbiak mindebből a szétválasztásból következnek, és éppen itt veszít el egy délutánt a legtöbb sikertelen beállítás.

A mítosz: a távvezérlés az eszközt is átmozgatja

A távoli asztal szoftver egy kijelzést és egy bemeneti adatfolyamot továbbít, és jó kapcsolatnál úgy tűnik, mintha a Mac ott ülne ön előtt. Amit nem továbbít, az az USB, és a telefont sem helyezi a Mac hálózatára. A munkamenet a Mac asztalánál ér véget, ahol az Xcode-nak ezután a saját szabályai szerint kell megtalálnia az eszközt. Az a feltevés, hogy a telefon a pixelekkel együtt utazik, a leggyakoribb hiba ebben az elrendezésben.

A két kapcsolat független, és az egyik tökéletes lehet, miközben a másik egyáltalán nem létezik. Az asztali munkamenet javítása semmit sem mond az eszközhöz vezető útról.

Döntse el, hol van fizikailag a telefon, mielőtt bármit beállít

Ha a telefon a Mac mellett marad, ott végezze el a szokásos helyi beállítást: bízzon meg a számítógépben, kapcsolja be a fejlesztői módot az eszközön, és erősítse meg, hogy az Xcode fordít rá és fut rajta, miközben a gép előtt ül. Ekkor a távoli asztal egy már működő munkafolyamatot vezérel. Ez a legolcsóbb elrendezés, és ezt érdemes előnyben részesíteni, valahányszor a hardver engedi.

Ha a telefon önnel utazik, a Mac pedig az irodában marad, a Macnek támogatott útra van szüksége ahhoz az eszközhöz. A VPN hálózati útvonalat biztosít a két vég között, és semmi mást: a párosítás, a fejlesztői mód, az aláírási identitás és az eszközregisztráció továbbra is külön követelmény. Kezelje az alagutat egy rétegként egy veremben, ne magaként a kapcsolatként.

Írja fel, melyik a két elrendezés közül. Minden későbbi ellenőrzés ettől függ, és összekeverésük olyan javításokat szül, amelyek nem működhetnek.

Kezelje a felderítést és a szállítást két külön problémaként

Az Xcode a párosított vezeték nélküli eszközöket Bonjourön keresztül találja meg a helyi hálózaton, és egy ismert című eszközt a Connect via IP Address segítségével is el tud érni. Ez két mechanizmus, két különböző hiba móddal. Az az eszköz, amely soha nem jelenik meg a listán, és az, amely megjelenik, de megtagadja a csatlakozást, nem ugyanaz a tünet, pedig mindkettő hiányzó telefonként olvasható.

Nézze meg a hirdetményt, mielőtt bármit módosítana: a dns-sd -B _apple-mobdev2._tcp felsorolja azt a szolgáltatást, amelyet a párosított telefon a helyi kapcsolaton közzétesz. Ha semmi sem jelenik meg, a felderítés a törött réteg, és a címalapú kapcsolat az egyetlen maradék út. Ha a szolgáltatás megjelenik, de az Xcode továbbra sem tud csatlakozni, a felderítés működik, és a szállítás vagy a bizalmi viszony az, ami meghiúsul.

Az Apple vezeték nélküli eszközökről szóló súgója lefedi az azonos hálózat követelményét és a címes munkafolyamatot is, ezért a telepített verzióihoz olvassa, ahelyett hogy egy régebbi kiadásból emlékezett menüútvonalat követne. A menücímkék Xcode-kiadások között mozognak, akkor is, ha a mögöttes mechanizmus nem változik.

Ellenőrizze, mit lát a Mac a helyéről

A felsorolást a Macen futtassa, ne a laptopján, mert a Mac az a gép, amelynek szüksége van az eszközre. A xcrun devicectl list devices kiírja azokat az eszközöket, amelyeket az Xcode el tud érni, a system_profiler SPUSBDataType pedig megmutatja, mi van fizikailag csatlakoztatva. Az a telefon, amely a második listán szerepel, de az elsőn nem, csatlakoztatva van, de nincs párosítva, és ez bizalmi, nem hálózati probléma.

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

Ha az eszköz más alhálózaton van, erősítse meg, hogy a Mac eléri a telefont által közzétett címet, és ne feledje, hogy a kapcsolathoz helyi IPv6-címek egy kapcsolatra korlátozódnak, és nem irányíthatók át alagúton. Ezért tesz ritkán láthatóvá egy távoli telefont a VPN önmagában: az eszköz által hirdetett cím csak a saját szegmensén értelmezhető.

Az Apple TN3158 jelű műszaki jegyzete szerint az Xcode a 15 verziótól kezdve kábellel csatlakoztatott eszközzel a kapcsolathoz helyi IPv6-ra épülő hálózati interfészen keresztül beszél, ezért a helyi szűrés még egy fizikailag csatlakoztatott telefont is zavarhat. Ezt az esetet a szűrési szabályzat tulajdonosához emelje, ne önmaga kapcsolja ki.

Fordítással bizonyítsa, ne eszközikonnal

Egy eszközbejegyzés a listán, zöld jelző az eszköztáron vagy sikeres párosítási kérés köztes megfigyelések. A munkafolyamat akkor bizonyított, amikor az Xcode telepít egy engedélyezett fordítást, és a hibakereső csatlakozik az eszközön futó folyamathoz.

Futtassa a teljes sorrendet a Macről. A xcrun devicectl device install app --device DEVICE_UDID build/MyApp.app IDE nélkül telepít, ami elválasztja az Xcode felületének problémáját az eszközhöz vezető út problémájától. Ezután indítsa el az alkalmazást, és csatlakoztasson hozzá egy konzolt. Ha a parancssori telepítés működik, az IDE pedig nem, a fennmaradó hiba a sémában vagy az aláírási konfigurációban van, nem a hálózatban.

Tartsa szűken az elrendezést: egy engedélyezett fejlesztő, egy regisztrált Mac, egy eszköz, és olyan hozzáférés, amely a munkamenet végével véget ér. A munkamenet lejártával vonja vissza a hitelesítő adatokat. Ha a telefon egyszerűen a Mac mellett maradhat, azt válassza, mert a legegyszerűbb támogatott úton marad a legkevesebb réteg a hibakereséshez.

Kapcsolódó cikkek