Supozimi i zakonshëm është që një sesion desktopi në distancë e zhvendos të gjithë mjedisin e zhvillimit në laptopin tënd. Ai zhvendos ekranin, tastierën dhe miun, dhe asgjë tjetër. iPhone duhet të arrijë Mac-in ku ekzekutohet Xcode, dhe kjo është një lidhje më vete me kërkesat e saj për besim, transport dhe leje. Gjithçka më poshtë rrjedh nga kjo ndarje, dhe pikërisht këtu shumica e konfigurimeve të dështuara humbin gjysmë dite.

Miti: kontrolli në distancë zhvendos edhe pajisjen

Programi i desktopit në distancë përcjell një ekran dhe një rrjedhë hyrëse, dhe në një lidhje të mirë duket sikur Mac-i është ulur para teje. Ajo që nuk përcjell është USB-ja, dhe as e vendos telefonin në rrjetin e Mac-it. Sesioni përfundon në desktopin e Mac-it, ku Xcode më pas duhet të gjejë një pajisje sipas rregullave të veta. Të supozosh se telefoni udhëton bashkë me pikselat është gabimi më i zakonshëm në këtë rregullim.

Të dyja lidhjet janë të pavarura, dhe njëra mund të jetë e përsosur ndërsa tjetra nuk ekziston fare. Riparimi i sesionit të desktopit nuk të thotë asgjë për rrugën drejt pajisjes.

Vendos ku ndodhet fizikisht telefoni përpara se të konfigurosh çdo gjë

Nëse telefoni mbetet pranë Mac-it, bëj atje konfigurimin e zakonshëm lokal: beso kompjuterin, aktivizo modalitetin e zhvilluesit në pajisje dhe konfirmo që Xcode ndërton dhe ekzekuton në të ndërsa je ulur përpara makinës. Desktopi në distancë më pas kontrollon një rrjedhë pune që funksionon tashmë. Ky është rregullimi më i lirë dhe ai që duhet preferuar sa herë që hardueri e lejon.

Nëse telefoni udhëton me ty dhe Mac-i mbetet në zyrë, Mac-it i duhet një rrugë e mbështetur drejt asaj pajisje. Një VPN ofron një rrugë rrjeti midis dy skajeve dhe asgjë tjetër: çiftimi, modaliteti i zhvilluesit, identiteti i nënshkrimit dhe regjistrimi i pajisjes mbeten të gjitha kërkesa të ndara. Trajto tunelin si një shtresë në një stivë, jo si vetë lidhjen.

Shkruaj në cilin prej atyre dy rregullimeve je. Çdo kontroll i mëvonshëm varet nga kjo, dhe përzierja e tyre prodhon rregullime që nuk mund të funksionojnë.

Trajto zbulimin dhe transportin si dy probleme të ndryshme

Xcode i gjen pajisjet me valë të çiftuara përmes Bonjour në rrjetin lokal, dhe mund të arrijë edhe një pajisje në një adresë të njohur përmes Connect via IP Address. Këto janë dy mekanizma me dy mënyra të ndryshme dështimi. Një pajisje që nuk shfaqet kurrë në listë dhe një pajisje që shfaqet por refuzon të lidhet nuk janë i njëjti simptom, ndonëse të dyja lexohen si një telefon që mungon.

Kërko reklamën përpara se të ndryshosh çdo gjë: dns-sd -B _apple-mobdev2._tcp liston shërbimin që një telefon i çiftuar publikon në lidhjen lokale. Nëse nuk shfaqet asgjë, zbulimi është shtresa e prishur dhe mbetet vetëm një lidhje e bazuar në adresë. Nëse shërbimi shfaqet por Xcode ende nuk arrin të lidhet, zbulimi funksionon dhe ajo që dështon është transporti ose marrëdhënia e besimit.

Ndihma e Apple për pajisjet me valë mbulon si kërkesën e të njëjtit rrjet ashtu edhe rrjedhën e punës me adresë, prandaj lexoje kundrejt versioneve të instaluara në vend që të ndjekësh një rrugë menuje të mbajtur mend nga një version i vjetër. Etiketat e menysë zhvendosen midis versioneve të Xcode edhe kur mekanizmi poshtë tyre nuk ndryshon.

Kontrollo çfarë arrin të shohë Mac-i nga vendi ku ndodhet

Ekzekuto numërimin në Mac, jo në laptop, sepse Mac-i është makina që ka nevojë për pajisjen. xcrun devicectl list devices printon pajisjet që Xcode arrin të arrijë, dhe system_profiler SPUSBDataType tregon çfarë është e lidhur fizikisht. Një telefon që shfaqet në listën e dytë por jo në të parën është i lidhur dhe i paçiftuar, që është problem besimi dhe jo rrjeti.

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

Nëse pajisja ndodhet në një nënrrjet tjetër, konfirmo që Mac-i arrin adresën që publikon telefoni, dhe mbaj mend që adresat link-local IPv6 janë të kufizuara në një lidhje të vetme dhe nuk rrugëtohen përmes një tuneli. Kjo është arsyeja pse një VPN i vetëm rrallë e bën të dukshëm një telefon në distancë: adresa që reklamon pajisja ka kuptim vetëm në segmentin e saj.

Shënimi teknik i Apple TN3158 thotë që nga versioni 15 Xcode komunikon me një pajisje me kabllo përmes një ndërfaqeje rrjeti të ndërtuar mbi link-local IPv6, prandaj filtrimi lokal mund të ndërhyjë edhe me një telefon të lidhur fizikisht. Përcille atë rast tek ai që zotëron politikën e filtrimit në vend që ta çaktivizosh vetë.

Provoje me një ndërtim, jo me një ikonë pajisjeje

Një zë pajisjeje në një listë, një tregues i gjelbër në shiritin e mjeteve ose një kërkesë e suksesshme çiftimi janë vëzhgime të ndërmjetme. Rrjedha e punës provohet kur Xcode instalon një ndërtim të lejuar dhe korrigjuesi lidhet me një proces që ekzekutohet në pajisje.

Ekzekuto tërë sekuencën nga Mac-i. xcrun devicectl device install app --device DEVICE_UDID build/MyApp.app instalon pa IDE, gjë që ndan një problem të ndërfaqes së Xcode nga një problem i rrugës drejt pajisjes. Pastaj nis aplikacionin dhe lidh një konsolë me të. Nëse instalimi nga rreshti i komandave funksionon dhe IDE-ja jo, defekti i mbetur është në skemë ose në konfigurimin e nënshkrimit dhe jo në rrjet.

Mbaje rregullimin të ngushtë: një zhvillues i autorizuar, një Mac i regjistruar, një pajisje dhe akses që mbaron kur mbaron sesioni. Anulo kredencialet kur rregullimi ndalon. Nëse telefoni thjesht mund të mbetet pranë Mac-it, zgjidh atë, sepse rruga më e thjeshtë e mbështetur është ajo me më pak shtresa për të korrigjuar.

Artikuj të ngjashëm