Parece uma configuração padrão de integração contínua
Parece que você gostaria de criar um ambiente de integração contínua para que os desenvolvedores possam trabalhar independentemente uns dos outros, mas mescle seu trabalho regularmente (a cada duas horas) e ter o resultado final enviado para o dispositivo iOS. que atua como o padrão de lançamento atual.
Configurando um sistema de controle de versão
Primeiro, configure um sistema de controle de versão. Pergunte aos seus desenvolvedores quais eles preferem, mas os candidatos mais populares serão o Subversion, o Mercurial ou o Git. Os dois últimos oferecem controle de versão distribuída para que seus desenvolvedores possam trabalhar em qualquer lugar (mesmo quando estiver offline no servidor de controle da versão principal). O primeiro (SVN) requer que um servidor de controle de versão esteja disponível para checkins, normalmente o caso quando você está no escritório. As versões atuais do Xcode têm suporte nativo para o Subversion, mas há também o cliente Versões e Git Tower para git.
Não há escassez de blogs sobre a configuração de qualquer um dos itens acima, basta escolher e começar. Pessoalmente, Mercurial é uma brisa , mas sua milhagem pode variar.
Configurando o Hudson
O Hudson é um servidor de construção de integração contínua muito simples. (Jenkins é o projeto sucessor direto para Hudson e você pode querer aplicar essa abordagem usando Jenkins).
Configure o Hudson para iOS e um alvo de compilação algo como isto
xcodebuild -project Myproj.xcodeproj -target MyProj -configuration Debug
Configure o Hudson / Jenkins para criar todas as alterações no sistema de controle de versão.
O processo geral torna-se então
- O desenvolvedor A escreve algum código, testa-o localmente e o verifica em
- O Desenvolvedor B grava simultaneamente algum código e o verifica em
- O controle de origem mescla as alterações com a versão mais recente
- O Hudson verifica a última versão atual e tenta uma compilação
- Se a construção falhar, todos os desenvolvedores receberão um e-mail informando o que causou a falha
- Os desenvolvedores trabalham para corrigir o problema de integração
- Enxágue e repita até que o aplicativo possa ser liberado
- Verifique se o aplicativo funciona nos dispositivos iOS de destino, retroceda como um bug se ele falhar