iPhone nelze jen tak připojit ke vzdálenému Macu kvůli Xcode
Vzdálená plocha vám ukazuje Xcode, ne iPhone na vašem stole. Spárujte zařízení s Macem, který sestavuje, a objevování berte odděleně od přenosu.
Obvyklý předpoklad je, že relace vzdálené plochy přesune celé vývojové prostředí na váš notebook. Přesune obrazovku, klávesnici a myš, a nic jiného. iPhone se musí dostat k Macu, na kterém běží Xcode, a to je samostatné spojení s vlastními požadavky na důvěru, přenos a oprávnění. Vše níže z tohoto rozdělení vyplývá a právě na něm většina neúspěšných sestavení ztratí odpoledne.
Mýtus: vzdálené ovládání přesouvá i zařízení
Software vzdálené plochy přenáší displej a tok vstupu, a na dobrém spojení to vypadá, jako by Mac seděl před vámi. Co nepřenáší, je USB, a telefon také neumístí do sítě Macu. Relace končí na ploše Macu, kde pak Xcode musí najít zařízení podle svých vlastních pravidel. Předpoklad, že telefon cestuje s pixely, je v tomto uspořádání nejčastější chybou.
Obě spojení jsou nezávislá a jedno může být dokonalé, zatímco druhé vůbec neexistuje. Oprava relace plochy vám o cestě k zařízení neřekne nic.
Než cokoli nastavíte, určete, kde telefon fyzicky je
Pokud telefon zůstává vedle Macu, udělejte tam obvyklé místní nastavení: důvěřujte počítači, zapněte na zařízení vývojářský režim a potvrďte, že Xcode na něj sestavuje a spouští, když sedíte před strojem. Vzdálená plocha pak ovládá postup, který už funguje. To je nejlevnější uspořádání a to, které je třeba upřednostnit, kdykoli to hardware dovolí.
Pokud telefon cestuje s vámi a Mac zůstává v kanceláři, Mac potřebuje podporovanou cestu k tomuto zařízení. VPN poskytuje síťovou trasu mezi oběma konci a nic jiného: párování, vývojářský režim, identita podpisu a registrace zařízení zůstávají samostatnými požadavky. Tunel berte jako jednu vrstvu v zásobníku, ne jako samotné spojení.
Zapište si, ve kterém z těch dvou uspořádání jste. Každá další kontrola na tom závisí a jejich záměna vede k opravám, které nemohou fungovat.
Berte objevování a přenos jako dva různé problémy
Xcode nachází spárovaná bezdrátová zařízení přes Bonjour v místní síti a dokáže také dosáhnout zařízení na známé adrese pomocí Connect via IP Address. To jsou dva mechanismy se dvěma různými režimy selhání. Zařízení, které se v seznamu nikdy neobjeví, a zařízení, které se objeví, ale odmítá se připojit, nejsou stejný příznak, i když se obojí čte jako chybějící telefon.
Než cokoli změníte, prohlédněte si inzerát: dns-sd -B _apple-mobdev2._tcp vypisuje službu, kterou spárovaný telefon zveřejňuje na místním spoji. Pokud se nic neobjeví, rozbitou vrstvou je objevování a spojení založené na adrese je jediná zbývající cesta. Pokud se služba objeví, ale Xcode se stále nemůže připojit, objevování funguje a selhává přenos nebo vztah důvěry.
Nápověda Apple k bezdrátovým zařízením pokrývá jak požadavek stejné sítě, tak postup s adresou, takže ji čtěte proti nainstalovaným verzím, místo abyste sledovali cestu v nabídce zapamatovanou ze staršího vydání. Popisky nabídek se mezi vydáními Xcode mění, i když se mechanismus pod nimi nemění.
Ověřte, co Mac ze svého místa vidí
Spusťte výčet na Macu, ne na svém notebooku, protože Mac je stroj, který zařízení potřebuje. xcrun devicectl list devices vypíše zařízení, ke kterým se Xcode dostane, a system_profiler SPUSBDataType ukazuje, co je fyzicky připojeno. Telefon, který je v druhém seznamu, ale ne v prvním, je připojený a není spárovaný, což je problém důvěry, ne sítě.
xcrun devicectl list devices
system_profiler SPUSBDataType | grep -i iphone
xcrun devicectl device info DEVICE_UDID
Pokud zařízení leží v jiné podsíti, ověřte, že Mac dosáhne na adresu, kterou telefon zveřejňuje, a pamatujte, že adresy IPv6 lokální pro spoj jsou omezené na jeden spoj a nelze je směrovat tunelem. Proto samotná VPN vzdálený telefon zviditelní jen zřídka: adresa, kterou zařízení inzeruje, má význam jen v jeho vlastním segmentu.
Technická poznámka Apple TN3158 uvádí, že od verze 15 Xcode komunikuje s kabelem připojeným zařízením přes síťové rozhraní postavené na IPv6 lokálním pro spoj, takže místní filtrování může rušit i telefon, který je fyzicky zapojený. Předejte tento případ vlastníkovi politiky filtrování, místo abyste ji sami vypínali.
Dokažte to sestavením, ne ikonou zařízení
Záznam zařízení v seznamu, zelený indikátor na panelu nástrojů nebo úspěšný dotaz na párování jsou mezilehlá pozorování. Postup je prokázán, když Xcode nainstaluje povolené sestavení a ladicí program se připojí k procesu běžícímu na zařízení.
Proveďte celou posloupnost z Macu. xcrun devicectl device install app --device DEVICE_UDID build/MyApp.app nainstaluje bez IDE, což oddělí problém rozhraní Xcode od problému cesty k zařízení. Poté aplikaci spusťte a připojte k ní konzoli. Pokud instalace z příkazového řádku funguje a IDE ne, zbývající závada je ve schématu nebo v konfiguraci podpisu, ne v síti.
Držte uspořádání úzké: jeden oprávněný vývojář, jeden registrovaný Mac, jedno zařízení a přístup, který skončí se skončením relace. Když uspořádání skončí, odvolejte přihlašovací údaje. Pokud telefon může prostě zůstat vedle Macu, zvolte to, protože nejjednodušší podporovaná cesta je ta s nejméně zbývajícími vrstvami k ladění.