Zvyčajný predpoklad je, že relácia vzdialenej plochy presunie celé vývojové prostredie na váš notebook. Presúva obrazovku, klávesnicu a myš a nič iné. iPhone sa musí dostať k Macu, na ktorom beží Xcode, a to je samostatné spojenie s vlastnými požiadavkami na dôveru, prenos a povolenia. Všetko nižšie vyplýva z tohto rozdelenia a práve tu väčšina neúspešných zostáv stratí pol dňa.

Mýtus: vzdialené ovládanie presúva aj zariadenie

Softvér vzdialenej plochy preposiela obraz a vstupný tok a na dobrom spojení to vyzerá, akoby Mac sedel pred vami. Nepreposiela však USB a telefón ani neumiestni do siete Macu. Relácia sa končí na ploche Macu, kde Xcode potom musí nájsť zariadenie podľa vlastných pravidiel. Predpokladať, že telefón cestuje spolu s pixelmi, je najčastejšia chyba v tomto usporiadaní.

Obe spojenia sú nezávislé a jedno môže byť dokonalé, kým druhé vôbec neexistuje. Oprava relácie plochy vám o ceste k zariadeniu nepovie nič.

Pred konfiguráciou čohokoľvek rozhodnite, kde sa telefón fyzicky nachádza

Ak telefón zostáva vedľa Macu, urobte tam bežné lokálne nastavenie: dôverujte počítaču, zapnite na zariadení režim vývojára a potvrďte, že Xcode naň zostavuje a spúšťa, kým sedíte pred strojom. Vzdialená plocha potom ovláda postup, ktorý už funguje. To je najlacnejšie usporiadanie a to, ktoré treba uprednostniť, kedykoľvek to hardvér dovolí.

Ak telefón cestuje s vami a Mac zostáva v kancelárii, Mac potrebuje podporovanú cestu k tomuto zariadeniu. VPN poskytuje sieťovú trasu medzi oboma koncami a nič iné: párovanie, režim vývojára, identita podpisu a registrácia zariadenia zostávajú samostatnými požiadavkami. Tunel berte ako jednu vrstvu v zásobníku, nie ako samotné spojenie.

Zapíšte si, v ktorom z tých dvoch usporiadaní ste. Každá ďalšia kontrola od toho závisí a ich miešanie prináša opravy, ktoré nemôžu fungovať.

Objavovanie a prenos berte ako dva rôzne problémy

Xcode nachádza spárované bezdrôtové zariadenia cez Bonjour v lokálnej sieti a dokáže sa dostať aj k zariadeniu na známej adrese cez Connect via IP Address. Sú to dva mechanizmy s dvoma rôznymi spôsobmi zlyhania. Zariadenie, ktoré sa v zozname nikdy neobjaví, a zariadenie, ktoré sa objaví, ale odmietne sa pripojiť, nie sú rovnaký príznak, hoci obe sa čítajú ako chýbajúci telefón.

Pred akoukoľvek zmenou hľadajte oznam: dns-sd -B _apple-mobdev2._tcp vypisuje službu, ktorú spárovaný telefón zverejňuje na lokálnom spoji. Ak sa nič neobjaví, objavovanie je pokazená vrstva a zostáva len spojenie založené na adrese. Ak sa služba objaví, ale Xcode sa stále nedokáže pripojiť, objavovanie funguje a zlyháva prenos alebo vzťah dôvery.

Pomocník Apple pre bezdrôtové zariadenia pokrýva požiadavku rovnakej siete aj postup s adresou, preto ho čítajte vo vzťahu k nainštalovaným verziám a nie podľa cesty v ponuke zapamätanej zo staršieho vydania. Menovky ponuky sa medzi vydaniami Xcode posúvajú, aj keď sa mechanizmus pod nimi nemení.

Skontrolujte, čo Mac vidí zo svojho miesta

Výpis spúšťajte na Macu, nie na notebooku, pretože Mac je stroj, ktorý zariadenie potrebuje. xcrun devicectl list devices vypíše zariadenia, ku ktorým sa Xcode dostane, a system_profiler SPUSBDataType ukáže, čo je fyzicky pripojené. Telefón, ktorý je v druhom zozname, ale nie v prvom, je pripojený a nespárovaný, čo je problém dôvery, nie siete.

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

Ak je zariadenie v inej podsieti, potvrďte, že Mac sa dostane na adresu, ktorú telefón zverejňuje, a pamätajte, že link-local IPv6 adresy sú obmedzené na jedno spojenie a nie sú smerované cez tunel. Preto samotná VPN zriedka spôsobí, že sa vzdialený telefón objaví: adresa, ktorú zariadenie oznamuje, má zmysel len v jeho vlastnom segmente.

Technická poznámka Apple TN3158 uvádza, že od verzie 15 Xcode komunikuje s káblom pripojeným zariadením cez sieťové rozhranie postavené na link-local IPv6, takže lokálne filtrovanie môže prekážať aj fyzicky pripojenému telefónu. Takýto prípad eskalujte tomu, kto vlastní politiku filtrovania, namiesto toho, aby ste ju sami vypínali.

Dokážte to zostavením, nie ikonou zariadenia

Záznam zariadenia v zozname, zelený indikátor na paneli nástrojov alebo úspešná žiadosť o párovanie sú medziľahlé pozorovania. Postup je dokázaný, keď Xcode nainštaluje povolené zostavenie a ladič sa pripojí k procesu, ktorý beží na zariadení.

Spustite celú sekvenciu z Macu. xcrun devicectl device install app --device DEVICE_UDID build/MyApp.app nainštaluje bez IDE, čo oddelí problém rozhrania Xcode od problému cesty k zariadeniu. Potom aplikáciu spustite a pripojte k nej konzolu. Ak inštalácia z príkazového riadka funguje a IDE nie, zostávajúca chyba je v schéme alebo v konfigurácii podpisu, nie v sieti.

Udržujte usporiadanie úzke: jeden oprávnený vývojár, jeden registrovaný Mac, jedno zariadenie a prístup, ktorý sa skončí so skončením relácie. Keď usporiadanie skončí, odvolajte prihlasovacie údaje. Ak telefón môže jednoducho zostať vedľa Macu, vyberte to, pretože najjednoduchšia podporovaná cesta má najmenej vrstiev na ladenie.

Súvisiace články