Berbagi proyek melalui jaringan tidak memindahkan Xcode, karena aplikasi tetap berjalan di Mac Anda dan tetap meminta data proyek ke server. Menjalankan Xcode di Mac jarak jauh dan melihat layarnya adalah pengaturan lain, di mana aplikasi dan berkasnya tetap bersama dan tautan hanya membawa tampilan serta masukan Anda. Memutuskan mana yang Anda inginkan, sebelum mengonfigurasi apa pun, menyelesaikan sebagian besar kebingungan berikutnya.

Tiga pengaturan mencakup kasus yang biasa, dan ketiganya berbeda pada tempat ruang kerja berada dan mesin mana yang mengompilasi. Tuliskan jawaban Anda untuk kedua hal itu sebelum melanjutkan.

Sebutkan mesin yang menjalankan Xcode

Pada pengaturan pertama semuanya lokal: salinan kerja, indeks, dan build semuanya berada di Mac Anda, dan jaringan hanya membawa lalu lintas repositori dan dependensi. Pada yang kedua proyek tetap di Mac jarak jauh bersama Xcode, sehingga pengindeksan dan kompilasi terjadi di samping berkas sementara tautan membawa isi layar dan ketukan tombol. Pada yang ketiga penyuntingan terjadi secara lokal dan build berjalan di host jarak jauh setelah penyerahan sumber yang eksplisit. Tabel menyebutkan apa yang dipindahkan masing-masing.

ArrangementWhere the source livesWhat crosses the link
Everything localLocal diskRepository and dependency traffic
Remote Xcode, screen sharedRemote diskDisplay frames and input events
Local edit, remote buildBoth, with a handoffSource transfer, then build output

Baca dulu kolom tengah, karena kolom itu menentukan di mana kegagalan muncul. Alur kerja yang sumbernya jarak jauh gagal ketika tautan lambat, sedangkan alur kerja dengan pengompilasi jarak jauh gagal ketika penyerahan ambigu. Hanya yang ketiga membuat Anda bertanggung jawab atas keduanya.

Hitung perjalanan pulang-pergi, bukan megabita

Penyunting dan pengindeks mengeluarkan banyak operasi berkas kecil, dan masing-masing menjadi perjalanan pulang-pergi ketika sistem berkas berada jauh. Itu membuat ruang kerja yang di-mount peka terhadap latensi dengan cara yang tidak dialami satu salinan besar, karena itulah mengukur waktu transfer berkas hampir tidak memberi tahu Anda apa pun tentang bagaimana alur kerja terasa. Tampilan jarak jauh memiliki profil sebaliknya: ia memindahkan aliran berkelanjutan dan lebih tahan terhadap throughput daripada terhadap tunda. Membandingkan keduanya dengan satu angka menghasilkan jawaban salah yang penuh percaya diri.

Tidak ada pengaturan yang secara alami paling cepat. Pilihan yang tepat bergantung pada pekerjaan yang benar-benar Anda lakukan, karena itulah langkah berikutnya adalah mencoba pekerjaan itu, bukan tolok ukur.

Buat penyerahan sumber menjadi eksplisit

Ketika kedua mesin memegang salinan kerja, putuskan mana yang berwenang dan revisi mana yang dipakai build jarak jauh. Commit adalah penyerahan yang lebih jelas daripada dua alat yang menyunting satu pohon kerja yang di-mount, karena commit punya identitas sedangkan mount tidak. Keluaran yang dihasilkan dan data indeks juga perlu pemilik, karena keduanya dibangun ulang dari sumber dan tidak seharusnya berpindah seolah-olah sumber. Cermin dua arah tanpa aturan konflik bukan alur kerja, melainkan balapan.

Membangun secara jarak jauh juga membutuhkan agar host jarak jauh memiliki rantai alat yang tepat dan kredensial untuk dependensi privat. VPN yang memungkinkan Anda mencapai host tidak meminjamkan akses akun Anda kepadanya, dan tidak memasang Xcode di sana.

Periksa jalurnya sebelum Anda berkomitmen pada alur kerja

Verifikasi host jarak jauh sebelum merancang di sekitarnya, lalu ukur tautan dengan operasi yang benar-benar akan dilakukan alur kerja. Perintah di bawah memeriksa rantai alat, direktori pengembang aktif, dan biaya pengamatan berkas yang membuat ruang kerja jarak jauh menyakitkan. Jalankan yang terakhir melalui jalur jaringan, bukan secara lokal.

xcode-select -p
xcodebuild -version
ssh mac-builder 'xcodebuild -version'
time git status --porcelain

Host tanpa pemasangan Xcode yang lengkap mengembalikan galat dari xcodebuild, dan itu masalah rantai alat, bukan masalah jaringan. Direktori pengembang menunjukkan Xcode mana yang akan dipakai build, dan jalur yang hanya menunjuk ke alat baris perintah berarti aplikasinya tidak terpasang. Mengukur waktu perintah status repositori melalui berbagi pakai yang di-mount menyingkap biaya perjalanan pulang-pergi secara langsung, dan membandingkannya dengan jalannya lokal memberi angka yang penting. Jika kesenjangan itu sudah tidak menyenangkan, alur kerja ruang kerja yang di-mount akan lebih buruk di bawah penyunting sungguhan.

Catat pengaturan mana yang Anda pilih, mesin mana yang memiliki sumber, dan bagaimana penyerahannya bekerja. Catatan itu mengubah orientasi atau penggantian laptop berikutnya menjadi tugas konfigurasi alih-alih penyelidikan.

Artikel terkait