De gewoane oanname is dat in sesje fan in eksteren buroblêd de hiele ûntjouwingsomjouwing nei jo laptop ferpleatst. Hy ferpleatst it skerm, it toetseboerd en de mûs, en fierders neat. De iPhone moat de Mac berikke dêr't Xcode op draait, en dat is in aparte ferbining mei eigen easken foar fertrouwen, ferfier en tastimming. Alles hjirûnder komt út dy splitsing fuort, en dêr ferlieze de measte mislearre ynstellings in middei.

De myte: ôfstânsbetsjinning ferpleatst it apparaat ek

Software foar eksterne buroblêden stjoert in byldskerm en in ynfierstream troch, en by in goede ferbining fielt it as sit de Mac foar jo. Wat it net trochstjoert, is USB, en it set de telefoan ek net op it netwurk fan de Mac. De sesje einiget by it buroblêd fan de Mac, dêr't Xcode dan in apparaat neffens syn eigen regels fine moat. Oannimme dat de telefoan mei de pixels meireizget, is de meast foarkommende flater yn dizze opstelling.

De twa ferbiningen binne ûnôfhinklik, en de iene kin perfekt wêze wylst de oare hielendal net bestiet. It reparearjen fan de buroblêdsesje seit jo neat oer it paad nei it apparaat.

Bepale wêr't de telefoan fysyk is foardat jo wat ynstelle

As de telefoan by de Mac bliuwt, doch dêr de gewoane lokale ynstelling: fertrou de kompjûter, skeakelje ûntwikkelermodus op it apparaat yn, en befestigje dat Xcode dêrop bout en draait wylst jo foar de masine sitte. Dan betsjinnet it eksterne buroblêd in wurkstream dy't al wurket. Dat is de goedkeapste opstelling en dejinge dy't jo foarkar jaan moatte as de hardware it tasteat.

As de telefoan mei jo reizget en de Mac op kantoar bliuwt, hat de Mac in stipe paad nei dat apparaat nedich. In VPN leveret in netwurkroete tusken de beide einen en leveret fierders neat: keppeljen, ûntwikkelermodus, ûndertekeningsidentiteit en apparaatregistraasje bliuwe allegear aparte easken. Behannelje de tunnel as ien laach yn in steapel, net as de ferbining sels.

Skriuw op yn hokker fan de twa opstellings jo sitte. Elk letter kontrôle hinget dêrfan ôf, en it trochinoar heljen jout reparaasjes dy't net wurkje kinne.

Behannelje ûntdekking en ferfier as twa ferskillende problemen

Xcode fynt keppele draadleaze apparaten fia Bonjour op it lokale netwurk, en it kin ek in apparaat op in bekend adres berikke fia Connect via IP Address. Dat binne twa meganismen mei twa ferskillende wizen fan mislearren. In apparaat dat nea yn de list ferskynt en in apparaat dat ferskynt mar wegeret oan te heakjen binne net itselde symptoom, al wurde beide lêzen as in fermiste telefoan.

Blêdzje troch de oankundiging foardat jo wat feroarje: dns-sd -B _apple-mobdev2._tcp listet de tsjinst op dy't in keppele telefoan op de lokale keppeling publisearret. As der neat ferskynt, is ûntdekking de stikken laach en is in adresbasearre ferbining it iennichste paad dat oerbliuwt. As de tsjinst ferskynt mar Xcode kin noch net heakje, dan wurket ûntdekking en is it it ferfier of de fertrouwensrelaasje dat misrint.

De Apple-help oer draadleaze apparaten beslacht sawol de eask fan itselde netwurk as de adreswurkstream, dus lês dy tsjin jo ynstalleare ferzjes oan ynstee fan in menupaad te folgjen dy't jo fan in âldere ferzje ûnthâlden hawwe. Menulabels ferpleatse har tusken Xcode-ferzjes, sels wannear't it meganisme derûnder net feroaret.

Kontrolearje wat de Mac fan syn plak ôf sjen kin

Rin de ophelling op de Mac, net op jo laptop, want de Mac is de masine dy't it apparaat nedich hat. xcrun devicectl list devices printsje de apparaten dy't Xcode berikke kin, en system_profiler SPUSBDataType lit sjen wat fysyk oansletten is. In telefoan dy't yn de twadde list stiet mar net yn de earste, is oansletten en net keppele, en dat is in fertrouwensprobleem ynstee fan in netwurkprobleem.

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

As it apparaat op in oar subnet sit, befestigje dan dat de Mac it adres berikke kin dat de telefoan publisearret, en ûnthâld dat keppeling-lokale IPv6-adressen ta ien keppeling beheind binne en net oer in tunnel rûte wurde kinne. Dêrom makket in VPN allinne selden in eksterne telefoan sichtber: it adres dat it apparaat oankundiget, hat allinnich op syn eigen segmint betsjutting.

De technyske nota TN3158 fan Apple stelt dat Xcode fan ferzje 15 ôf mei in bekabeld apparaat praat fia in netwurkynterface boud op keppeling-lokale IPv6, dat lokale filters kinne sels in fysyk oansletten telefoan hinderje. Eskalelet dat gefal nei wa't it filterbelied hat, ynstee fan it sels út te skeakeljen.

Bewiis it mei in build, net mei in apparaatikoan

In apparaatynfier yn in list, in griene oanwizing yn de arkbalke of in slagge keppelingsfrage binne tuskenbeide waarnimmings. De wurkstream is bewiisd as Xcode in tastiene build ynstallearret en de debugger him heakket oan in proses dat op it apparaat draait.

Rin de folsleine sekwinsje fan de Mac ôf. xcrun devicectl device install app --device DEVICE_UDID build/MyApp.app ynstallearret sûnder de IDE, wat in probleem fan de Xcode-interface skiedt fan in probleem fan it paad nei it apparaat. Start dan de app en heakje in console deroan. As de ynstallaasje fan de opdrachtregel wurket en de IDE net, dan sit de oerbleaune flater yn it skema of de ûndertekeningskonfiguraasje, net yn it netwurk.

Hâld de opstelling smel: ien autorisearre ûntwikkeler, ien registrearre Mac, ien apparaat, en tagong dy't einiget as de sesje einiget. Lûk de legitimearings yn as de opstelling ophâldt. As de telefoan gewoan by de Mac bliuwe kin, kies dat, want it ienfâldichste stipe paad is dat mei de minste lagen om noch te debuggen.

Relatearre artikelen