Compartir un proxecto pola rede non traslada Xcode, porque a aplicación segue executándose no teu Mac e segue pedindo os datos do proxecto ao servidor. Executar Xcode no Mac remoto e ver a súa pantalla é outra disposición, na que a aplicación e os seus ficheiros permanecen xuntos e a ligazón só transporta a visualización e a túa entrada. Decidir cal das dúas queres, antes de configurar nada, resolve a maior parte da confusión posterior.

Tres disposicións cobren os casos habituais, e difiren en onde vive o espazo de traballo e que máquina compila. Anota a túa resposta para ambos os puntos antes de continuar.

Nomea a máquina que executa Xcode

Na primeira disposición todo é local: a copia de traballo, o índice e a compilación viven no teu Mac, e a rede só transporta tráfico de repositorio e de dependencias. Na segunda, o proxecto queda no Mac remoto con Xcode, así que a indexación e a compilación ocorren xunto aos ficheiros mentres a ligazón transporta contido de pantalla e pulsacións de teclas. Na terceira, a edición ocorre localmente e unha compilación execútase nun anfitrión remoto tras unha entrega explícita da fonte. A táboa nomea que move cada unha.

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

Le primeiro a columna central, porque decide onde aparecerán os fallos. Un fluxo de traballo cuxa fonte é remota falla cando a ligazón é lenta, mentres que un fluxo cun compilador remoto falla cando a entrega é ambigua. Só a terceira te fai responsable de ambas as dúas cousas.

Conta as viaxes de ida e volta, non os megabytes

Un editor e un indexador emiten moitas operacións de ficheiro pequenas, e cada unha convértese nunha viaxe de ida e volta cando o sistema de ficheiros é remoto. Iso fai que un espazo de traballo montado sexa sensible á latencia dun xeito no que unha soa copia grande non o é, polo que medir o tempo dunha transferencia de ficheiro non che di case nada sobre como se sente o fluxo de traballo. A visualización remota ten o perfil oposto: move un fluxo continuo e tolera mellor o rendemento que o atraso. Comparar as dúas cun só número produce unha resposta errónea e segura.

Ningunha das disposicións é a máis rápida por natureza. A elección correcta depende do traballo que realmente fas, polo que o seguinte paso é probar ese traballo e non unha referencia.

Fai explícita a entrega da fonte

Cando ambas as máquinas teñen unha copia de traballo, decide cal é a autoritativa e que revisión usou a compilación remota. Un commit é unha entrega máis clara que dúas ferramentas editando un só árbore de traballo montado, porque o commit ten identidade e o montaxe non. A saída xerada e os datos do índice tamén necesitan un dono, porque se reconstrúen a partir da fonte e non deberían viaxar coma se fosen fonte. Un espello bidireccional sen regras de conflito non é un fluxo de traballo, é unha carreira.

Compilar en remoto tamén require que o anfitrión remoto teña a cadea de ferramentas correcta e as credenciais para as dependencias privadas. Unha VPN que che permite chegar ao anfitrión non lle presta o acceso á túa conta, e non instala Xcode alí.

Comproba o camiño antes de comprometerte cun fluxo de traballo

Verifica o anfitrión remoto antes de deseñar ao seu redor, e despois mide a ligazón coas operacións que o fluxo de traballo realizará realmente. Os comandos seguintes comproban a cadea de ferramentas, o directorio de desenvolvedor activo e o custo de observación de ficheiros que fai dolorosos os espazos de traballo remotos. Executa o último pola ruta de rede e non localmente.

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

Un anfitrión sen unha instalación completa de Xcode devolve un erro de xcodebuild, e iso é un problema da cadea de ferramentas, non da rede. O directorio de desenvolvedor mostra que Xcode usará a compilación, e unha ruta que só apunta ás ferramentas de liña de ordes significa que a aplicación non está instalada. Medir o tempo do comando de estado do repositorio a través do recurso compartido montado expón directamente o custo da viaxe de ida e volta, e comparalo cunha execución local dá o número que importa. Se esa fenda xa é desagradable, o fluxo co espazo montado será peor baixo un editor real.

Rexistra que disposición escolliches, que máquina posúe a fonte e como funciona a entrega. Esa nota converte a próxima incorporación ou o cambio de portátil nunha tarefa de configuración en lugar dunha investigación.

Artigos relacionados