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-ის გვერდით შეიძლება დარჩეს, ის აირჩიეთ, რადგან ყველაზე მარტივ მხარდაჭერილ გზაზე გამართვისთვის ყველაზე ნაკლები შრე რჩება.