Anggapan biasa adalah bahwa sesi desktop jarak jauh memindahkan seluruh lingkungan pengembangan ke laptop Anda. Sesi itu memindahkan layar, papan ketik, dan mouse, dan tidak ada yang lain. iPhone harus mencapai Mac yang menjalankan Xcode, dan itu koneksi terpisah dengan persyaratan kepercayaan, transportasi, dan izinnya sendiri. Semua di bawah ini berasal dari pemisahan itu, dan di situlah sebagian besar penyiapan yang gagal kehilangan satu sore.

Mitos: kendali jarak jauh juga memindahkan perangkat

Perangkat lunak desktop jarak jauh meneruskan tampilan dan aliran masukan, dan pada koneksi yang baik rasanya Mac duduk di depan Anda. Yang tidak diteruskannya adalah USB, dan ia juga tidak meletakkan telepon pada jaringan Mac. Sesi berakhir di desktop Mac, tempat Xcode lalu harus menemukan perangkat menurut aturannya sendiri. Menganggap telepon ikut berpindah bersama piksel adalah kesalahan paling umum dalam tatanan ini.

Kedua koneksi itu independen, dan yang satu bisa sempurna sementara yang lain tidak ada sama sekali. Memperbaiki sesi desktop tidak memberi tahu Anda apa pun tentang jalur perangkat.

Tentukan di mana telepon secara fisik sebelum mengonfigurasi apa pun

Jika telepon tetap di samping Mac, lakukan penyiapan lokal biasa di sana: percayai komputer, aktifkan mode pengembang pada perangkat, dan pastikan Xcode membangun dan menjalankannya saat Anda duduk di depan mesin. Desktop jarak jauh kemudian mengendalikan alur kerja yang sudah berjalan. Itu tatanan termurah dan yang sebaiknya dipilih setiap kali perangkat keras mengizinkan.

Jika telepon bepergian bersama Anda dan Mac tetap di kantor, Mac memerlukan jalur yang didukung ke perangkat itu. VPN menyediakan rute jaringan antara kedua ujung dan tidak menyediakan apa pun lagi: pemasangan, mode pengembang, identitas penandatanganan, dan pendaftaran perangkat semuanya tetap persyaratan terpisah. Perlakukan terowongan sebagai satu lapisan dalam tumpukan, bukan sebagai koneksinya sendiri.

Catat di tatanan mana dari keduanya Anda berada. Setiap pemeriksaan berikutnya bergantung pada itu, dan mencampurnya menghasilkan perbaikan yang tidak mungkin berhasil.

Perlakukan penemuan dan transportasi sebagai dua masalah berbeda

Xcode menemukan perangkat nirkabel yang dipasangkan melalui Bonjour di jaringan lokal, dan juga dapat menjangkau perangkat pada alamat yang dikenal melalui Connect via IP Address. Itu dua mekanisme dengan dua cara gagal yang berbeda. Perangkat yang tidak pernah muncul di daftar dan perangkat yang muncul tetapi menolak tersambung bukan gejala yang sama, meskipun keduanya terbaca sebagai telepon yang hilang.

Telusuri pengumumannya sebelum mengubah apa pun: dns-sd -B _apple-mobdev2._tcp mencantumkan layanan yang diterbitkan telepon yang dipasangkan pada tautan lokal. Jika tidak ada yang muncul, penemuan adalah lapisan yang rusak dan koneksi berbasis alamat adalah satu-satunya jalur yang tersisa. Jika layanan muncul tetapi Xcode tetap tidak dapat tersambung, penemuan berjalan dan yang gagal adalah transportasi atau hubungan kepercayaan.

Bantuan Apple tentang perangkat nirkabel mencakup persyaratan jaringan yang sama dan alur kerja alamat, jadi bacalah terhadap versi yang Anda pasang alih-alih mengikuti jalur menu yang Anda ingat dari rilis lama. Label menu bergeser antar rilis Xcode meskipun mekanisme di bawahnya tidak berubah.

Periksa apa yang dapat dilihat Mac dari tempatnya

Jalankan pendataan di Mac, bukan di laptop Anda, karena Mac adalah mesin yang memerlukan perangkat itu. xcrun devicectl list devices mencetak perangkat yang dapat dijangkau Xcode, dan system_profiler SPUSBDataType memperlihatkan apa yang tersambung secara fisik. Telepon yang muncul di daftar kedua tetapi tidak di daftar pertama tersambung tetapi tidak dipasangkan, dan itu masalah kepercayaan, bukan masalah jaringan.

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

Jika perangkat berada di subnet lain, pastikan Mac dapat menjangkau alamat yang diterbitkan telepon, dan ingat bahwa alamat IPv6 lokal tautan dibatasi pada satu tautan dan tidak dapat dirutekan melalui terowongan. Itulah sebabnya VPN saja jarang membuat telepon jarak jauh muncul: alamat yang diumumkan perangkat hanya bermakna pada segmennya sendiri.

Catatan teknis Apple TN3158 menyatakan bahwa sejak versi 15 Xcode berbicara dengan perangkat berkabel melalui antarmuka jaringan yang dibangun di atas IPv6 lokal tautan, sehingga penyaringan lokal dapat mengganggu bahkan telepon yang tercolok secara fisik. Eskalasi kasus itu kepada pemilik kebijakan penyaringan alih-alih mematikannya sendiri.

Buktikan dengan build, bukan dengan ikon perangkat

Entri perangkat dalam daftar, indikator hijau di bilah alat, atau permintaan pemasangan yang berhasil adalah pengamatan antara. Alur kerja terbukti ketika Xcode memasang build yang diizinkan dan debugger menyambung ke proses yang berjalan di perangkat.

Jalankan seluruh urutan dari Mac. xcrun devicectl device install app --device DEVICE_UDID build/MyApp.app memasang tanpa IDE, yang memisahkan masalah antarmuka Xcode dari masalah jalur perangkat. Lalu jalankan aplikasi dan sambungkan konsol ke sana. Jika pemasangan dari baris perintah berhasil dan IDE tidak, sisa kesalahan ada pada skema atau konfigurasi penandatanganan, bukan pada jaringan.

Jaga tatanan tetap sempit: satu pengembang yang berwenang, satu Mac yang terdaftar, satu perangkat, dan akses yang berakhir saat sesi berakhir. Cabut kredensial ketika tatanan berhenti. Jika telepon bisa tetap di samping Mac, pilih itu, karena jalur yang didukung paling sederhana adalah yang menyisakan paling sedikit lapisan untuk di-debug.

Artikel terkait