Yaygın varsayım, uzak masaüstü oturumunun tüm geliştirme ortamını dizüstü bilgisayarınıza taşıdığıdır. Ekranı, klavyeyi ve fareyi taşır, başka bir şeyi değil. iPhone, Xcode'un çalıştığı Mac'e ulaşmalıdır ve bu, kendi güven, taşıma ve izin gereksinimleri olan ayrı bir bağlantıdır. Aşağıdaki her şey bu ayrımdan kaynaklanır ve başarısız kurulumların çoğu yarım günü tam burada kaybeder.

Efsane: uzaktan denetim cihazı da taşır

Uzak masaüstü yazılımı bir ekranı ve giriş akışını iletir ve iyi bir bağlantıda Mac önünüzde oturuyormuş gibi hissettirir. Ancak iletmediği şey USB'dir ve telefonu Mac'in ağına da yerleştirmez. Oturum Mac'in masaüstünde biter ve Xcode orada cihazı kendi kurallarına göre bulmak zorundadır. Telefonun piksellerle birlikte yolculuk ettiğini varsaymak bu düzenlemedeki en yaygın hatadır.

İki bağlantı bağımsızdır ve biri kusursuzken diğeri hiç var olmayabilir. Masaüstü oturumunu onarmak size cihaz yoluna dair hiçbir şey söylemez.

Herhangi bir şeyi yapılandırmadan önce telefonun fiziksel olarak nerede olduğuna karar verin

Telefon Mac'in yanında kalıyorsa orada olağan yerel kurulumu yapın: bilgisayara güvenin, cihazda geliştirici modunu açın ve makinenin önünde otururken Xcode'un cihaza derleyip çalıştırdığını doğrulayın. Uzak masaüstü daha sonra zaten çalışan bir iş akışını denetler. Bu en ucuz düzenlemedir ve donanım izin verdiğinde tercih edilmesi gereken budur.

Telefon sizinle yolculuk ediyor ve Mac ofiste kalıyorsa Mac'in o cihaza giden desteklenen bir yola ihtiyacı vardır. VPN iki uç arasında bir ağ yolu sağlar ve başka bir şey sağlamaz: eşleştirme, geliştirici modu, imzalama kimliği ve cihaz kaydı hepsi ayrı gereksinimler olarak kalır. Tüneli bağlantının kendisi olarak değil, yığındaki bir katman olarak görün.

Bu iki düzenlemeden hangisinde olduğunuzu yazın. Sonraki her kontrol buna bağlıdır ve bunları karıştırmak çalışamayacak düzeltmeler üretir.

Keşfi ve taşımayı iki ayrı sorun olarak ele alın

Xcode, eşleştirilmiş kablosuz cihazları yerel ağdaki Bonjour üzerinden bulur ve bilinen bir adresteki cihaza Connect via IP Address ile de ulaşabilir. Bunlar iki farklı arıza kipine sahip iki mekanizmadır. Listede hiç görünmeyen bir cihaz ile görünüp de bağlanmayı reddeden bir cihaz aynı belirti değildir, her ikisi de kayıp telefon gibi okunsa bile.

Herhangi bir şeyi değiştirmeden önce duyuruyu arayın: dns-sd -B _apple-mobdev2._tcp eşleştirilmiş bir telefonun yerel bağlantıda yayınladığı hizmeti listeler. Hiçbir şey görünmüyorsa keşif bozuk katmandır ve geriye yalnızca adres tabanlı bağlantı kalır. Hizmet görünüyor ama Xcode hâlâ bağlanamıyorsa keşif çalışıyor ve başarısız olan taşıma ya da güven ilişkisidir.

Apple'ın kablosuz cihaz yardımı hem aynı ağ gereksinimini hem de adres iş akışını kapsar, bu yüzden eski bir sürümden hatırlanan menü yolunu izlemek yerine kurulu sürümlerinize göre okuyun. Alttaki mekanizma değişmese de menü etiketleri Xcode sürümleri arasında yer değiştirir.

Mac'in bulunduğu yerden ne görebildiğini kontrol edin

Numaralandırmayı dizüstü bilgisayarınızda değil Mac'te çalıştırın, çünkü cihaza ihtiyaç duyan makine Mac'tir. xcrun devicectl list devices Xcode'un ulaşabildiği cihazları yazdırır ve system_profiler SPUSBDataType fiziksel olarak neyin bağlı olduğunu gösterir. İkinci listede görünüp birincide görünmeyen bir telefon bağlıdır ama eşleştirilmemiştir; bu bir ağ sorunu değil güven sorunudur.

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

Cihaz başka bir alt ağdaysa Mac'in telefonun yayınladığı adrese ulaşabildiğini doğrulayın ve link-local IPv6 adreslerinin tek bir bağlantıyla sınırlı olduğunu ve bir tünel üzerinden yönlendirilmediğini unutmayın. Bu yüzden tek başına bir VPN uzaktaki telefonu nadiren görünür kılar: cihazın duyurduğu adres yalnızca kendi segmentinde anlam taşır.

Apple'ın TN3158 teknik notu, 15 sürümünden itibaren Xcode'un kabloyla bağlı bir cihazla link-local IPv6 üzerine kurulu bir ağ arayüzü üzerinden konuştuğunu belirtir, bu yüzden yerel filtreleme fiziksel olarak takılı bir telefona bile müdahale edebilir. Böyle bir durumu kendiniz devre dışı bırakmak yerine filtreleme politikasının sahibine iletin.

Bunu cihaz simgesiyle değil, derlemeyle kanıtlayın

Listedeki bir cihaz kaydı, araç çubuğundaki yeşil gösterge veya başarılı bir eşleştirme istemi ara gözlemlerdir. İş akışı, Xcode izin verilen bir derlemeyi kurduğunda ve hata ayıklayıcı cihazda çalışan bir sürece bağlandığında kanıtlanır.

Tüm sırayı Mac'ten çalıştırın. xcrun devicectl device install app --device DEVICE_UDID build/MyApp.app IDE olmadan kurar; bu, Xcode arayüz sorununu cihaz yolu sorunundan ayırır. Ardından uygulamayı başlatın ve ona bir konsol bağlayın. Komut satırından kurulum çalışıp IDE çalışmıyorsa kalan arıza ağda değil, şemada veya imzalama yapılandırmasındadır.

Düzenlemeyi dar tutun: yetkili bir geliştirici, kayıtlı bir Mac, bir cihaz ve oturum bittiğinde biten erişim. Düzenleme sona erdiğinde kimlik bilgilerini iptal edin. Telefon Mac'in yanında kalabiliyorsa onu seçin, çünkü en basit desteklenen yol hata ayıklamak için en az katman bırakan yoldur.

İlgili makaleler