Xcode-ийн тулд iPhone-ийг алсын Mac-д зүгээр л холбож болохгүй
Алсын ажлын талбар танд Xcode харуулна, ширээн дээрх iPhone-ийг биш. Төхөөрөмжийг бүтээдэг Mac-тай хослуул, илрүүлэлтийг дамжуулалтаас тусдаа асуудал гэж үзээрэй.
Ердийн таамаг нь алсын ажлын талбарын сесс бүх хөгжүүлэлтийн орчныг таны зөөврийн компьютер руу зөөдөг гэж бодох юм. Энэ нь дэлгэц, гар, хулганыг зөөдөг, өөр юу ч биш. iPhone нь Xcode ажилладаг Mac-д хүрэх ёстой бөгөөд энэ нь өөрийн итгэл, дамжуулалт, зөвшөөрлийн шаардлагатай тусдаа холболт юм. Доорх бүхэн энэ хуваалтаас гаралтай бөгөөд бүтэлгүйтсэн тохиргоонууд хагас өдрөө алддаг газар нь яг энэ.
Домог: алсын удирдлага төхөөрөмжийг хамт зөөдөг
Алсын ажлын талбарын програм хангамж дэлгэц болон оролтын урсгалыг дамжуулдаг бөгөөд сайн холболт дээр 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 утасны нийтэлж буй хаягт хүрч чадахыг батал, link-local IPv6 хаягууд нь зөвхөн нэг холбоос дээр хүчинтэй бөгөөд туннелээр маршрутлагддаггүйг сана. Тиймээс ганц VPN алсын утсыг ховор л харагдуулдаг: төхөөрөмжийн зарладаг хаяг нь зөвхөн өөрийн сегмент дээр утгатай.
Apple-ийн техникийн тэмдэглэл TN3158 нь 15 хувилбараас эхлэн Xcode кабельтай төхөөрөмжтэй link-local IPv6-д суурилсан сүлжээний интерфейсээр харилцдаг гэж заасан тул локал шүүлтүүр физикээр холбогдсон утасанд ч саад болж болно. Тэр тохиолдлыг өөрөө идэвхгүй болгохын оронд шүүлтүүрийн бодлогыг эзэмшигчид дамжуул.
Үүнийг төхөөрөмжийн дүрсээр биш, бүтээлээр нотол
Жагсаалт дахь төхөөрөмжийн бичлэг, багажны мөрний ногоон заагч эсвэл амжилттай хослолтын асуулт нь завсрын ажиглалт юм. Xcode зөвшөөрөгдсөн бүтээлийг суулгаж, дибаглагч төхөөрөмж дээр ажиллаж буй процессорт холбогдоход ажлын урсгал нотлогдоно.
Бүрэн дарааллыг Mac-ээс ажиллуул. xcrun devicectl device install app --device DEVICE_UDID build/MyApp.app нь IDE-гүйгээр суулгадаг бөгөөд энэ нь Xcode-ийн интерфейсийн асуудлыг төхөөрөмж хүрэх замын асуудлаас тусгаарлана. Дараа нь аппыг эхлүүлж, түүнд консолыг холбо. Хэрэв командын мөрний суулгалт ажиллаж, IDE ажиллахгүй бол үлдсэн алдаа нь сүлжээнд биш, схем эсвэл гарын үсгийн тохиргоонд.
Зохион байгуулалтыг нарийн бариарай: нэг эрх бүхий хөгжүүлэгч, нэг бүртгэлтэй Mac, нэг төхөөрөмж, сесс дуусахад дуусдаг хандалт. Зохион байгуулалт зогсоход итгэмжлэлийг цуцал. Хэрэв утас зүгээр л Mac-ийн хажууд үлдэж чадвал түүнийг сонго, учир нь хамгийн энгийн дэмжигдсэн зам нь дибаг хийхэд хамгийн цөөн давхарга үлдээдэг зам.