Jy kan nie net 'n iPhone op 'n afgeleë Mac vir Xcode aansluit nie
Afgeleë lessenaar wys vir jou Xcode, nie die iPhone op jou lessenaar nie. Koppel die toestel aan die Mac wat bou, en behandel ontdekking as iets apart van vervoer.
Die gewone aanname is dat 'n afgeleë lessenaarsessie die hele ontwikkelopset na jou skootrekenaar skuif. Dit skuif die skerm, die sleutelbord en die muis, en niks anders nie. Die iPhone moet die Mac bereik wat Xcode laat loop, en dit is 'n aparte verbinding met sy eie vereistes vir vertroue, vervoer en toestemming. Alles hieronder volg uit daardie skeiding, en dit is juis waar die meeste mislukte opstellings 'n middag verloor.
Die mite: afstandbeheer skuif die toestel ook
Afgeleë lessenaarsagteware stuur 'n vertoning en 'n invoerstroom aan, en op 'n goeie verbinding voel dit asof die Mac voor jou sit. Wat dit nie aanstuur nie, is USB, en dit plaas die selfoon ook nie op die Mac se netwerk nie. Die sessie eindig by die Mac se lessenaar, waar Xcode dan 'n toestel volgens sy eie reëls moet vind. Om te aanvaar dat die selfoon saam met die pixels reis, is die algemeenste fout in hierdie reëling.
Die twee verbindings is onafhanklik, en een kan volmaak wees terwyl die ander glad nie bestaan nie. Om die lessenaarsessie te herstel sê vir jou niks oor die toestelroete nie.
Bepaal waar die selfoon fisies is voordat jy iets opstel
As die selfoon langs die Mac bly, doen die gewone plaaslike opstelling daar: vertrou die rekenaar, aktiveer ontwikkelaarmodus op die toestel, en bevestig dat Xcode bou en daarop loop terwyl jy voor die masjien sit. Afgeleë lessenaar beheer dan 'n werkwyse wat alreeds werk. Dit is die goedkoopste reëling en die een om te verkies wanneer die hardeware dit toelaat.
As die selfoon saam met jou reis en die Mac in die kantoor bly, het die Mac 'n ondersteunde roete na daardie toestel nodig. 'n VPN verskaf 'n netwerkroete tussen die twee punte en verskaf niks anders nie: koppeling, ontwikkelaarmodus, ondertekeningsidentiteit en toestelregistrasie bly steeds aparte vereistes. Behandel die tonnel as een laag in 'n stapel eerder as as die verbinding self.
Skryf neer in watter van daardie twee reëlings jy is. Elke latere kontrole hang daarvan af, en om hulle te verwar lewer regstellings op wat nie kan werk nie.
Behandel ontdekking en vervoer as twee verskillende probleme
Xcode vind gekoppelde draadlose toestelle deur Bonjour op die plaaslike netwerk, en dit kan ook 'n toestel by 'n bekende adres bereik deur Connect via IP Address. Dit is twee meganismes met twee verskillende faalwyses. 'n Toestel wat nooit in die lys verskyn nie en 'n toestel wat verskyn maar weier om aan te heg, is nie dieselfde simptoom nie, al lees albei as 'n vermiste selfoon.
Blaai deur die advertensie voordat jy enigiets verander: dns-sd -B _apple-mobdev2._tcp lys die diens wat 'n gekoppelde selfoon op die plaaslike skakel publiseer. As niks verskyn nie, is ontdekking die stukkende laag en is 'n adresgebaseerde verbinding die enigste roete wat oor is. As die diens verskyn maar Xcode kan steeds nie aanheg nie, werk ontdekking en is dit die vervoer of die vertrouensverhouding wat faal.
Die Apple-hulp oor draadlose toestelle dek beide die vereiste van dieselfde netwerk en die adreswerkwyse, so lees dit teen jou geinstalleerde weergawes eerder as om 'n kieslysroete te volg wat jy van 'n ouer weergawe onthou. Kieslysname skuif tussen Xcode-weergawes, selfs wanneer die onderliggende meganisme nie verander nie.
Kontroleer wat die Mac kan sien van waar hy sit
Voer die opsomming op die Mac uit, nie op jou skootrekenaar nie, want die Mac is die masjien wat die toestel nodig het. xcrun devicectl list devices druk die toestelle wat Xcode kan bereik, en system_profiler SPUSBDataType wys wat fisies aangeheg is. 'n Selfoon wat in die tweede lys verskyn maar nie in die eerste nie, is aangeheg en nie gekoppel nie, wat 'n vertrouensprobleem is eerder as 'n netwerkprobleem.
xcrun devicectl list devices
system_profiler SPUSBDataType | grep -i iphone
xcrun devicectl device info DEVICE_UDID
As die toestel op 'n ander subnet sit, bevestig dat die Mac die adres kan bereik wat die selfoon publiseer, en onthou dat skakel-plaaslike IPv6-adresse aan een skakel beperk is en nie oor 'n tonnel gerouteer kan word nie. Dit is waarom 'n VPN alleen selde 'n afgeleë selfoon laat verskyn: die adres wat die toestel adverteer, is net op sy eie segment geldig.
Die Apple-tegniese nota TN3158 se dat Xcode vanaf weergawe 15 met 'n bekabelde toestel oor 'n netwerkkoppelvlak praat wat op skakel-plaaslike IPv6 gebou is, so plaaslike filtering kan selfs met 'n selfoon wat fisies ingeprop is, inmeng. Eskaleer daardie geval na die eienaar van die filterbeleid eerder as om dit self af te skakel.
Bewys dit met 'n bou, nie met 'n toestelikoon nie
'n Toestelinskrywing in 'n lys, 'n groen aanduiding in die nutsbalk of 'n suksesvolle koppelingsversoek is tussenstappe. Die werkwyse is bewys wanneer Xcode 'n toegelate bou installeer en die ontfoutter aan 'n proses heg wat op die toestel loop.
Voer die volle reeks van die Mac af uit. xcrun devicectl device install app --device DEVICE_UDID build/MyApp.app installeer sonder die IDE, wat 'n Xcode-koppelvlakprobleem van 'n toestelroeteprobleem skei. Begin dan die app en heg 'n konsole daaraan. As die opdragreel-installasie werk en die IDE nie, is die oorblywende fout in die skema of die ondertekeningskonfigurasie eerder as in die netwerk.
Hou die reëling eng: een gemagtigde ontwikkelaar, een geregistreerde Mac, een toestel, en toegang wat eindig wanneer die sessie eindig. Trek geloofsbriewe terug wanneer die reëling stop. As die selfoon bloot langs die Mac kan bly, kies dit eerder, want die eenvoudigste ondersteunde roete is die een met die minste lae oor om te ontfout.