Essa pode ser uma abordagem empírica, mas vale a pena diante de muitos comentaristas, observando "isso funcionou para mim" ou "isso não funcionou para mim". Em primeiro lugar, o problema pode estar em vários locais, nos seus certificados (identidades de assinatura de código) ou nos perfis de provisionamento. Identificar onde está o problema antes de fazer qualquer coisa economizará muito esforço desperdiçado. Você precisará fazer check-in em três locais:
- XCode
- Acesso ao chaveiro
- O Portal do Desenvolvedor (Centro de Membros do Desenvolvedor)
OK, no XCode, clique no projeto (Acima do título dos alvos), selecione Configurações de compilação e role para 'Assinatura de código'. Expanda o cabeçalho 'CODE_SIGNING_IDENTITY' e você verá várias identidades (Depuração, Liberação etc.). Cada uma delas corresponderá a um certificado no Keychain Access. Encontre a correspondência e verifique a data de validade ... se ela expirou, será necessário atualizá-la no Portal do desenvolvedor e fazer o download. Verifique TODAS as identidades, não apenas a primeira que você encontrou que expirou. Além disso, se ele expirou, será necessário gerar novamente qualquer perfil de provisionamento que usou o certificado expirado. Se não houver problemas com os certificados, verifique a data de validade de todos os perfis de provisionamento. Mais uma vez, se eles expiraram, eles precisarão ser regenerados.
Depois de concluído, repita o mesmo processo para o TARGET para o qual você está tentando construir.
Nada disso funcionou? Um certificado expirado está oculto em um dos seus perfis de fornecimento. Um sinal de que esse pode ser o caso é que, quando você clica em um CODE_SIGNING_IDENTITY, a identidade está abaixo de Outro ... por exemplo.
Geralmente, esse é um sinal claro de que existe um certificado expirado e que um dos seus perfis está usando.