Andaian biasa ialah sesi desktop jauh memindahkan keseluruhan persediaan pembangunan ke komputer riba anda. Ia memindahkan skrin, papan kekunci dan tetikus, dan tiada yang lain. iPhone mesti sampai ke Mac yang menjalankan Xcode, dan itu ialah sambungan berasingan dengan kepercayaan, pengangkutan dan keperluan kebenarannya sendiri. Semua di bawah berpunca daripada pemisahan itu, dan di situlah kebanyakan persediaan yang gagal kehilangan setengah hari.

Mitos: kawalan jauh turut memindahkan peranti

Perisian desktop jauh memajukan paparan dan aliran input, dan pada sambungan yang baik ia terasa seolah-olah Mac itu duduk di hadapan anda. Tetapi yang tidak dimajukannya ialah USB, dan ia juga tidak meletakkan telefon ke dalam rangkaian Mac. Sesi berakhir di desktop Mac, di mana Xcode kemudiannya mesti mencari peranti mengikut peraturannya sendiri. Menganggap telefon itu bergerak bersama piksel ialah kesilapan paling biasa dalam susunan ini.

Kedua-dua sambungan itu bebas, dan satu boleh menjadi sempurna sementara yang lain tidak wujud langsung. Membaiki sesi desktop tidak memberitahu anda apa-apa tentang laluan peranti.

Tentukan di mana telefon berada secara fizikal sebelum mengkonfigurasi apa-apa

Jika telefon kekal di sebelah Mac, buat persediaan tempatan biasa di sana: percayai komputer, dayakan mod pembangun pada peranti, dan sahkan bahawa Xcode membina dan menjalankan padanya semasa anda duduk di hadapan mesin itu. Desktop jauh kemudiannya mengawal aliran kerja yang sudah berfungsi. Itulah susunan paling murah dan yang patut diutamakan apabila perkakasan mengizinkannya.

Jika telefon bergerak bersama anda dan Mac kekal di pejabat, Mac memerlukan laluan yang disokong ke peranti itu. VPN menyediakan laluan rangkaian antara kedua-dua hujung dan tidak menyediakan apa-apa lagi: pemasangan, mod pembangun, identiti tandatangan dan pendaftaran peranti semuanya kekal sebagai keperluan berasingan. Anggap terowong sebagai satu lapisan dalam tindanan, bukan sebagai sambungan itu sendiri.

Tuliskan yang mana antara dua susunan itu anda berada. Setiap semakan kemudian bergantung padanya, dan mencampurkannya menghasilkan pembaikan yang tidak mungkin berfungsi.

Anggap penemuan dan pengangkutan sebagai dua masalah berbeza

Xcode menemui peranti tanpa wayar yang dipasangkan melalui Bonjour pada rangkaian tempatan, dan ia juga boleh mencapai peranti pada alamat yang diketahui melalui Connect via IP Address. Itu dua mekanisme dengan dua mod kegagalan yang berbeza. Peranti yang tidak pernah muncul dalam senarai dan peranti yang muncul tetapi enggan menyambung bukan gejala yang sama, walaupun kedua-duanya terbaca sebagai telefon yang hilang.

Cari pengiklanan sebelum mengubah apa-apa: dns-sd -B _apple-mobdev2._tcp menyenaraikan perkhidmatan yang diterbitkan oleh telefon yang dipasangkan pada pautan tempatan. Jika tiada apa yang muncul, penemuan ialah lapisan yang rosak dan sambungan berasaskan alamat ialah satu-satunya laluan yang tinggal. Jika perkhidmatan muncul tetapi Xcode masih tidak dapat menyambung, penemuan berfungsi dan pengangkutan atau hubungan kepercayaan yang gagal.

Bantuan peranti tanpa wayar Apple merangkumi kedua-dua keperluan rangkaian yang sama dan aliran kerja alamat, jadi bacalah ia berbanding versi yang dipasang dan bukan mengikut laluan menu yang diingati daripada keluaran lama. Label menu berpindah antara keluaran Xcode walaupun mekanisme di bawahnya tidak berubah.

Semak apa yang Mac dapat lihat dari tempat ia berada

Jalankan penghitungan pada Mac dan bukan pada komputer riba anda, kerana Mac ialah mesin yang memerlukan peranti itu. xcrun devicectl list devices mencetak peranti yang boleh dicapai oleh Xcode, dan system_profiler SPUSBDataType menunjukkan apa yang dipasang secara fizikal. Telefon yang muncul dalam senarai kedua tetapi tidak dalam yang pertama dipasang dan tidak dipasangkan, iaitu masalah kepercayaan dan bukan masalah rangkaian.

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

Jika peranti berada pada subnet lain, sahkan bahawa Mac boleh mencapai alamat yang diterbitkan oleh telefon, dan ingat bahawa alamat link-local IPv6 terhad kepada satu pautan dan tidak boleh dihalakan merentas terowong. Itulah sebabnya VPN sahaja jarang membuat telefon jauh muncul: alamat yang diiklankan oleh peranti hanya bermakna pada segmennya sendiri.

Nota teknikal Apple TN3158 menyatakan bahawa dari versi 15, Xcode berkomunikasi dengan peranti berkabel melalui antara muka rangkaian yang dibina atas link-local IPv6, jadi penapisan tempatan boleh mengganggu walaupun telefon yang dipasang secara fizikal. Eskalasi kes itu kepada pemilik dasar penapisan dan jangan lumpuhkannya sendiri.

Buktikan dengan binaan, bukan dengan ikon peranti

Entri peranti dalam senarai, penunjuk hijau dalam bar alat atau gesaan pemasangan yang berjaya ialah pemerhatian pertengahan. Aliran kerja terbukti apabila Xcode memasang binaan yang dibenarkan dan penyahpepijat menyambung kepada proses yang berjalan pada peranti itu.

Jalankan urutan penuh dari Mac. xcrun devicectl device install app --device DEVICE_UDID build/MyApp.app memasang tanpa IDE, yang memisahkan masalah antara muka Xcode daripada masalah laluan peranti. Kemudian lancarkan aplikasi dan sambungkan konsol kepadanya. Jika pemasangan dari baris arahan berfungsi dan IDE tidak, kesalahan yang tinggal ialah pada skema atau konfigurasi tandatangan dan bukan pada rangkaian.

Kekalkan susunan itu sempit: seorang pembangun dibenarkan, satu Mac berdaftar, satu peranti, dan akses yang tamat apabila sesi tamat. Batalkan kelayakan apabila susunan itu berhenti. Jika telefon boleh kekal di sebelah Mac, pilih itu, kerana laluan yang disokong paling mudah ialah yang paling sedikit lapisan untuk dinyahpepijat.

Artikel berkaitan