Como configurar conjuntos independentes de configurações de tempo de execução no XCode

Meu aplicativo para iPhone se conecta a três servidores diferentes, digamos:Produção, encenação etestando. Há vários valores de configuração que o aplicativo usa dependendo de para qual servidor ele se conecta, por exemplo, Facebook App ID, chave da equipe TestFlight, etc.

Eu gostaria de ter todas as configurações no GIT e selecionar apenas a configuração que o aplicativo deveria usar ao compilar ou liberar. Por exemplo, quandotestando é selecionado,Produto -> Executar no XCode executa a versão de depuração do aplicativo conectandotestandoeProduto -> Arquivo cria o arquivo IPA com a versão de lançamento que também se conectatestando.

Eu não quero criar mais configurações de compilação do que depurar e liberar (porque isso significaria 6 combinações diferentes de configurações de compilação / configurações de tempo de execução). A solução ideal, como eu vejo, seria que eu tenho três esquemas:Produção, testando eencenaçãoe cada esquema seleciona um dos três arquivos Info.plist para usar com o aplicativo. Isso me permitiria não apenas definir diferentes configurações de tempo de execução, mas também diferentes versões de aplicativo ou identificadores de pacote, dependendo do servidor de back-end. Mas não parece que eu possa configurar a ação de arquivamento de qualquer outra forma além de selecionar uma configuração de compilação diferente. Alguma idéia se isso poderia ser alcançado de alguma forma?

Editar: Para deixar um pouco mais claro,produção / encenação / teste é o servidor de backend, não a versão do aplicativo iOS. O aplicativo para iOS vem em duas versões:depurar / liberar. Em outras palavras, posso querer executar umdepurar versão do aplicativo conectando-se aoProdução servidor, por exemplo, para depurar uma falha causada pelo JSON retornado desse servidor. Eu poderia ter nomeado os servidores como A, B e C por uma questão de clareza.

questionAnswers(4)

yourAnswerToTheQuestion