Domanda

C'è un modo per far funzionare XCode con le cartelle condivise e consentire a più persone di lavorare su un'app per iPhone contemporaneamente? O avremo bisogno di passare a qualcosa di più come SubEthaEdit o qualche altro strumento di collaborazione in tempo reale?

È stato utile?

Soluzione

Xcode è noto per giocare molto male con il file system. Quando gestisci un progetto, hai due opzioni, per aggiungere le cartelle come gruppo o come riferimenti a cartelle.

Se aggiungi un gruppo, la cartella verrà specchiata in Xcode, ma il gruppo non sarà sincronizzato con il filesystem, ovvero potrai spostare le cose all'interno del gruppo, eliminare il gruppo, non toccare il Vendo, inversa Xcode perderà i file.

La seconda opzione, per aggiungere un riferimento alla cartella, suona molto dolce, ma è totalmente infastidita. I riferimenti alle cartelle potrebbero non essere aggiornati correttamente, le modifiche non vengono rilevate all'interno delle cartelle (se aggiungi un riferimento alla cartella Immagini alle tue risorse e aggiorni il contenuto, le tue risorse non verranno aggiornate alla prossima build, devi pulire e ricostruire).

Questo è il motivo per cui non dovresti usare Xcode (usiamo vim + SCons qui e ne siamo molto soddisfatti) o devi usare un SCM (SCM può essere accoppiato anche con altri strumenti, DOVREBBE comunque usare un SCM) .

Per quanto riguarda SCM, consiglio Mercurial, ma ci sono anche SVN, Git e molti altri, ti consiglio un po 'Google e esprimi la tua opinione.

Altri suggerimenti

Se usi un SCM, l'approccio migliore finora è controllare in project.pbxproj  file (all'interno del bundle .xcodeproj). Principalmente ciò si fonde perfettamente, a volte devi unire manualmente ma in questi casi il 90% delle volte consenti semplicemente ad entrambi i lati della fusione.

Il mio file .gitignore è simile a:

# xcode noise
build/*
*.pbxuser
*.mode1v3
*.perspectivev3
*~
*.mode2v3

È possibile utilizzare un insieme di direttive Ignore simile per altri sistemi SCM.

I riferimenti alle cartelle sono OK per le immagini (con l'avvertenza devi fare una pulizia se cambi i contenuti delle immagini) ma non sono grandi per l'origine.

Consentire a più persone di lavorare su una cartella condivisa è una ricetta per il disastro e te ne pentirai la prima volta che qualcuno sovrascrive il file che hai modificato per la maggior parte del mattino perché volevano aggiornare un commento in esso.

Ottieni un SCM e fai in modo che tutti estraggano il loro codice nella loro cartella privata.

Sarai anche più felice quando le tue build andranno più veloci perché stai costruendo da un disco locale invece che da un disco di rete.

Se stai cercando una collaborazione in tempo reale, cioè due o più programmatori che scrivono lo stesso codice nello stesso file contemporaneamente, dovrai utilizzare un editor collaborativo come subethaedit. Puoi impostare subethaedit come editor preferito per i tuoi file sorgente in Xcode.

In questo modo, hai un programmatore che ospita il progetto Xcode, che apre i file sorgente in subethaedit. Altri programmatori accedono quindi al file tramite subethaedit. Quindi il programmatore di hosting compila il codice nel suo Xcode locale.

Tuttavia, come notato sopra nel commento di Rudedog, se vuoi solo avere più persone che lavorano sullo stesso progetto ma su file diversi, dovresti usare uno strumento di gestione del codice.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top