Չի կարելի պարզապես iPhone-ը միացնել հեռավոր Mac-ին Xcode-ի համար
Հեռավոր աշխատասեղանը ձեզ ցույց է տալիս Xcode, ոչ թե ձեր սեղանի iPhone-ը։ Զույգացրեք սարքը այն Mac-ի հետ, որը կառուցում է, և հայտնաբերումը դիտարկեք փոխադրումից առանձին։
Սովորական ենթադրությունն այն է, որ հեռավոր աշխատասեղանի սեանսը տեղափոխում է ամբողջ մշակման միջավայրը ձեր նոթբուք։ Այն տեղափոխում է էկրանը, ստեղնաշարը և մկնիկը, և ուրիշ ոչինչ։ iPhone-ը պետք է հասնի Mac-ին, որտեղ աշխատում է Xcode, և դա առանձին կապ է՝ իր վստահության, փոխադրման և թույլտվությունների պահանջներով։ Ամեն ինչ ներքևում բխում է այդ բաժանումից, և հենց այնտեղ են անհաջող կարգավորումների մեծ մասը կորցնում կես օր։
Առասպել. հեռակառավարումը տեղափոխում է նաև սարքը
Հեռավոր աշխատասեղանի ծրագրաշարը փոխանցում է ցուցասարք և մուտքային հոսք, և լավ կապի դեպքում թվում է, թե Mac-ը նստած է ձեր դիմաց։ Այն, ինչ չի փոխանցում, USB-ն է, և այն հեռախոսը չի տեղադրում նաև Mac-ի ցանցում։ Սեանսը ավարտվում է Mac-ի աշխատասեղանին, որտեղ Xcode-ը պետք է սարք գտնի իր իսկ կանոններով։ Այն ենթադրությունը, թե հեռախոսը ճամփորդում է պիքսելների հետ, այս դասավորության ամենատարածված սխալն է։
Երկու կապերն անկախ են, և մեկը կարող է կատարյալ լինել, մինչդեռ մյուսը բացակայում է ամբողջությամբ։ Աշխատասեղանի սեանսի վերանորոգումը ձեզ ոչինչ չի ասում սարքի ուղու մասին։
Որոշեք, թե հեռախոսը ֆիզիկապես որտեղ է, նախքան ինչ-որ բան կարգավորելը
Եթե հեռախոսը մնում է Mac-ի կողքին, այնտեղ արեք սովորական տեղական կարգավորումը. վստահեք համակարգչին, միացրեք մշակողի ռեժիմը սարքում և հաստատեք, որ Xcode-ը կառուցում և աշխատում է դրա վրա, մինչ դուք նստած եք մեքենայի առջև։ Այդ դեպքում հեռավոր աշխատասեղանը կառավարում է աշխատանքային հոսք, որն արդեն աշխատում է։ Սա ամենաէժան դասավորությունն է և այն, որը պետք է նախընտրել, երբ սարքավորումը թույլ է տալիս։
Եթե հեռախոսը ճամփորդում է ձեզ հետ, իսկ Mac-ը մնում է գրասենյակում, Mac-ին պետք է աջակցվող ուղի դեպի այդ սարքը։ VPN-ը տալիս է ցանցային ուղի երկու ծայրերի միջև և ոչ այլ բան. զույգացումը, մշակողի ռեժիմը, ստորագրության ինքնությունը և սարքի գրանցումը մնում են առանձին պահանջներ։ Թունելը դիտարկեք որպես շերտ կույտում, այլ ոչ թե որպես ինքը կապը։
Գրի առեք, թե երկու դասավորություններից որում եք։ Յուրաքանչյուր հետագա ստուգում կախված է դրանից, և դրանք խառնելը ստեղծում է ուղղումներ, որոնք չեն կարող աշխատել։
Հայտնաբերումը և փոխադրումը դիտարկեք որպես երկու տարբեր խնդիր
Xcode-ը զույգացված անլար սարքերը գտնում է Bonjour-ի միջոցով տեղական ցանցում, և կարող է նաև հասնել հայտնի հասցեով սարքի՝ Connect via IP Address-ի միջոցով։ Սրանք երկու մեխանիզմ են երկու տարբեր ձախողման եղանակով։ Այն սարքը, որը երբեք չի հայտնվում ցանկում, և այն սարքը, որը հայտնվում է, բայց հրաժարվում է միանալ, նույն ախտանիշը չեն, թեև երկուսն էլ կարդացվում են որպես բացակայող հեռախոս։
Նայեք հայտարարությունը նախքան ինչ-որ բան փոխելը. dns-sd -B _apple-mobdev2._tcp-ը թվարկում է այն ծառայությունը, որը զույգացված հեռախոսը հրապարակում է տեղական կապում։ Եթե ոչինչ չհայտնվի, հայտնաբերումն է կոտրված շերտը, և հասցեի վրա հիմնված կապը միակ մնացած ուղին է։ Եթե ծառայությունը հայտնվի, բայց Xcode-ը դեռ չկարողանա միանալ, հայտնաբերումը աշխատում է, և ձախողվում է փոխադրումը կամ վստահության հարաբերությունը։
Apple-ի անլար սարքերի օգնությունը ներառում է և՛ նույն ցանցի պահանջը, և՛ հասցեով աշխատանքային հոսքը, ուստի կարդացեք այն ձեր տեղադրված տարբերակների համեմատ, փոխարենը՝ հին թողարկումից հիշված մենյուի ուղի հետևելու։ Մենյուների պիտակները տեղափոխվում են Xcode-ի թողարկումների միջև, նույնիսկ երբ դրանց տակի մեխանիզմը չի փոխվում։
Ստուգեք, թե Mac-ը ինչ է տեսնում իր տեղից
Թվարկումը գործարկեք Mac-ի վրա, ոչ ձեր նոթբուքում, որովհետև Mac-ն է այն մեքենան, որին սարքն է պետք։ xcrun devicectl list devices-ը տպում է այն սարքերը, որոնց Xcode-ը կարող է հասնել, իսկ system_profiler SPUSBDataType-ը ցույց է տալիս, թե ինչ է ֆիզիկապես միացված։ Այն հեռախոսը, որը երկրորդ ցանկում է, բայց ոչ առաջինում, միացված է և զույգացված չէ, և դա վստահության, ոչ թե ցանցի խնդիր է։
xcrun devicectl list devices
system_profiler SPUSBDataType | grep -i iphone
xcrun devicectl device info DEVICE_UDID
Եթե սարքը գտնվում է այլ ենթացանցում, հաստատեք, որ Mac-ը կարող է հասնել հեռախոսի հրապարակած հասցեին, և հիշեք, որ կապի համար տեղական IPv6 հասցեները սահմանափակված են մեկ կապով և երթուղվող չեն թունելի միջով։ Այդ պատճառով միայն VPN-ը հազվադեպ է տեսանելի դարձնում հեռավոր հեռախոսը. այն հասցեն, որը սարքը հայտարարում է, իմաստ ունի միայն իր սեփական սեգմենտում։
Apple-ի TN3158 տեխնիկական նշումը նշում է, որ 15 տարբերակից սկսած Xcode-ը խոսում է մալուխով միացված սարքի հետ կապի համար տեղական IPv6-ի վրա կառուցված ցանցային ինտերֆեյսի միջոցով, ուստի տեղական զտումը կարող է խանգարել նույնիսկ ֆիզիկապես միացված հեռախոսին։ Այդ դեպքը բարձրացրեք զտման քաղաքականության տիրոջը, փոխարենը՝ ինքներդ անջատելու այն։
Ապացուցեք կառուցմամբ, ոչ սարքի պատկերակով
Սարքի գրանցումը ցանկում, կանաչ ցուցիչը գործիքագոտում կամ հաջող զույգացման հարցումը միջանկյալ դիտարկումներ են։ Աշխատանքային հոսքն ապացուցված է, երբ Xcode-ը տեղադրում է թույլատրված կառուցում, և վրիպազերծիչը միանում է սարքում աշխատող գործընթացին։
Ամբողջ հաջորդականությունը գործարկեք Mac-ից։ xcrun devicectl device install app --device DEVICE_UDID build/MyApp.app-ը տեղադրում է առանց IDE-ի, ինչը առանձնացնում է Xcode-ի ինտերֆեյսի խնդիրը սարքի ուղու խնդրից։ Այնուհետև գործարկեք հավելվածը և կցեք կոնսոլ։ Եթե հրամանի տողից տեղադրումն աշխատում է, իսկ IDE-ն՝ ոչ, մնացած անսարքությունը սխեմայում կամ ստորագրման կարգավորումներում է, ոչ թե ցանցում։
Դասավորությունը պահեք նեղ. մեկ լիազորված մշակող, մեկ գրանցված Mac, մեկ սարք և մուտք, որն ավարտվում է սեանսի ավարտին։ Չեղարկեք հավատարմագրերը, երբ դասավորությունը դադարում է։ Եթե հեռախոսը կարող է պարզապես մնալ Mac-ի կողքին, ընտրեք դա, որովհետև ամենապարզ աջակցվող ուղին այն է, որտեղ վրիպազերծելու համար ամենաքիչ շերտերն են մնում։