Como se familiarizar com os problemas de assinatura de código?

Toda vez que eu lido com perfis de assinatura e provisionamento de código, coisas estranhas acontecem. Na maioria das vezes, recebo o erro "nenhuma identidade de assinatura de código encontrada" e, caso contrário, algo como "nenhum perfil de provisionamento correspondente encontrado" e "nenhum perfil de provisionamento com uma identidade de assinatura válida".

Embora eu esteja familiarizado com a teoria e as coisas por trás da assinatura e do aprovisionamento de código, ainda existem muitas armadilhas nas quais sempre encontro e não sei como lidar. Às vezes, falha ao configurar um novo aplicativo, às vezes não.

Existem 5 * 2 maneiras diferentes de selecionar a identidade de assinatura de código. Qual a diferença entre eles? E se eu selecionar um para depuração e outro para liberação, qual é o motivo do"Qualquer SDK do iOS"?

Além disso, existem dois locais que oferecem esse diálogo: Configurações do projeto -> Configurações de construção é o primeiro local e também para o destino em Configurações de construção. Ambos não estão sincronizados, portanto, se eu mudar o código de assinatura em primeiro lugar, tenho que alterá-lo duas vezes em segundo lugar. Existe uma maneira de mantê-los sincronizados?

Qual identidade de assinatura de código se encaixaria melhor nas várias linhas (depuração, depuração -> qualquer ios sdk, release, release -> qualquer ios sdk), pois posso escolher entre identidades de desenvolvedor e identidades de distribuição (eu poderia imaginar, que a distribuição é para lançamento e o desenvolvedor é para depuração, mas por causa de tudo falhar, eu não sei.

O que eu fiz:

Há um certificado válido no Centro de Membros depositado para cada desenvolvedor de nossa equipe e um para distribuição ad hoc da Equipe. Também criamos AppIDs que refletem exatamente a mesma configuração nas Configurações do projeto. No meio, evitamos usar variáveis e usamos exatamente o appid também nas configurações do projeto para reduzir os riscos desse lado e simplificar as coisas.

Ao alternar o perfil de provisionamento de "Automático" para um perfil específico para este aplicativo, as identidades de assinatura de código mudam para valores diferentes, que também não estão sincronizados entre as configurações do projeto e as configurações de criação de destino:

No Target-> Build Settings, obtemos este resultado:

No Projeto -> Configurações da compilação, obtemos um resultado diferente:

Qual seria mais preciso? Após "Produto" -> "Arquivar" -> "Validar", obtemos o seguinte erro:

Não importa aqui se selecionarmos diferentes identidades de assinatura de código ou não. Na verdade, apenas para reproduzir 'trail-and-error', tentamos quase todas as combinações múltiplas de identidades de assinatura de código para aprender o que o XCode faria então.

Após esta mensagem de erro de Arquivar-> Validar, o perfil de fornecimento selecionado anterior é substituído por outro nomeado por uma sequência gerada aleatoriamente:

Quem pode me dizer o que acontece aqui e como resolver esses problemas?

Eu li muitos documentos sobre esse tópico. Mas a maioria dos tutoriais sobre esse tópico está desatualizada, pois ocorreram várias alterações entre o XCode 4 e o XCode 6. Até os documentos da apple oferecem principalmente capturas de tela baseadas em versões desatualizadas do XCode e também versões desatualizadas do Member Developer Center.

Atualizar

Como Ian McDonald apontou corretamente, a última pergunta (coberta pelas duas últimas capturas de tela) é respondida. Após recriar o perfil de provisionamento, ele não será substituído por seqüências geradas aleatoriamente, mas a criação do IPA ainda não funcionará com "nenhuma identidade de assinatura de código encontrada".

Como está agora:

questionAnswers(2)

yourAnswerToTheQuestion