Erro do CodeSign: a identidade do certificado 'iPhone Developer: XXXX (12345678)' aparece mais de uma vez nas chaves. A ferramenta de codesign requer que haja apenas um.
Então eu vou para o meu chaveiro e excluo. Mas eu recebo esse erro sempre que reinicio o Xcode 4 e algum aplicativo está adicionando o certificado antigo expirado de volta às chaves. Alguma ideia de por que e qual aplicativo?
iphone
objective-c
xcode4
code-signing
Mugunth
fonte
fonte
Respostas:
Eu simplesmente tive o mesmo problema. Foi consertado. Ele veio depois de enviar um aplicativo e instalar alguns certificados para assinar o aplicativo.
Correção rápida: Abra o acesso KEYCHAIN> clique em MEUS CERTIFICADOS> lá você provavelmente verá o desenvolvedor do iPhone:. Você provavelmente verá DUAS VEZES! Selecione aquele com a data de expiração mais antiga, clique com o botão direito e selecione EXCLUIR.
Reinicie o Xcode se ainda não o fez. Funciona agora. :)
Happy Coding.
fonte
Acho que descobri por que a exclusão simples não está funcionando. Como o certificado dev ainda está armazenado no perfil de provisão, quando fecho / abro o Xcode novamente após excluir o certificado no Keychain, vi o certificado antigo voltar. Então, eu excluo novamente. Funcionou.
A solução simples de excluir o perfil não funcionou para mim.
Solução que funcionou no meu caso:
fonte
Acabei de passar um bom tempo lutando com esse mesmo problema. Depois de todas as tentativas de consertá-lo, finalmente percebi que é um bug no Xcode. Esta postagem me deu uma pista para consertar: certificados magicamente reaparecendo em suas chaves
No meu caso, a chave privada correspondente estava nas chaves do sistema e tinha apenas meu nome (difícil dizer que era para provisionamento). Eu precisei:
Uma observação interessante é que quando você exclui o certificado, ele não exclui a chave privada associada. Visualmente, ele mostra a chave privada abaixo do certificado. Não se deixe enganar.
Boa sorte!
fonte
Ok, encontrei a resposta em outra pergunta "Relacionada". Problema de certificado expirado Xcode Problema conhecido com Xcode 4 http://openradar.appspot.com/9173280
fonte
Se você for membro dos programas iOS Developer e Enterprise iOS Developer e inserir o nome da sua empresa para os dois aplicativos, você terá dois certificados de distribuição válidos com o mesmo nome.
Eu acredito que esta questão aborda essa situação: Colisões CodeSign entre o desenvolvedor e a distribuição corporativa
fonte
Eu tenho o mesmo problema com xcode45-DP1. isso funciona para mim:
remova todos os certificados relacionados à sua conta do keychain. Chaveiro QUIT
remova todos os perfis de provisionamento relacionados à sua conta de xcode: organizer: device: Library: perfis de provisionamento. SAIR xcode
revogar seu certificado e gerá-lo novamente e baixá-lo para sua máquina de construção
antes de baixar o perfil de aprovisionamento, clique em Editar ao lado do botão de download para ter certeza de que seu nome está selecionado.
Em seguida, baixe o perfil de provisionamento
clique duas vezes no certificado para instalá-lo nas chaves
arraste o perfil de aprovisionamento para xcode: organizador: dispositivo: Biblioteca: perfis de aprovisionamento
não clique no botão atualizar do xcode.
faça a construção.
fonte
A resposta está aqui
remova todos os meus perfis de provisionamento antigos usando o certificado antigo com o Organizer e saia do XCode, remova o certificado antigo do Keychain e reinicie o XCode.
parece que o xcode irá manter os certificados por perto quando você tiver referências ao nos perfis de provisionamento
fonte
Eu estava tendo problemas com certificados zumbis sendo preenchidos novamente em minhas chaves e a identidade do certificado aparecendo duas vezes. Simplesmente excluir o certificado duplicado não funcionou.
No Xcode, quando vejo minha assinatura de código no destino, lembrei que tinha um perfil de distribuição diferente em compilações "Ad Hoc" do que em compilações "Release".
Quando gerei um novo certificado, apenas baixei um novo perfil para compilações Ad Hoc, e não para compilações Release.
O Xcode estava pendurado no certificado para ambos os perfis e, portanto, o Xcode estava causando os certificados duplicados ... porque esqueci de atualizar meus perfis corretamente.
Certifique-se de atualizar TODOS os seus perfis de provisionamento para o novo certificado e alterar TODOS os perfis ao mesmo tempo no Xcode.
fonte
Tive esse problema e li todas as informações sobre ele, finalmente encontrei a solução sozinho. O que as pessoas deixaram de mencionar é que ANTES de limpar os certificados no organizador Xcode e ANTES de limpar as chaves expiradas em seu chaveiro, você precisa se certificar de que não possui nenhum certificado expirado no Portal de Provisionamento . Se você tiver pelo menos um certificado expirado para um aplicativo antigo que usava o antigo certificado de desenvolvedor, o Xcode o puxará para seu organizador com a primeira compilação e de lá irá para seu chaveiro e causará uma duplicata.
fonte
No meu caso, o "cache" que o Xcode estava procurando era um dispositivo iOS conectado. Para determinar se este é o problema para você:
Se esta é a causa raiz para você, você pode contorná-la certificando-se de desconectar os dispositivos iOS antes de iniciar o Xcode.
fonte
Simplesmente excluir o certificado redundante não funcionou para mim. Parece que toda vez que xcodebuild é chamado, ele está "recriando" o certificado no keychain de um cache em algum lugar ... mesmo problema do avi Eu criei um hack / conserto para ele, tentei descobrir onde o arquivo estava sendo armazenado em cache e limpá-lo, mas não teve sorte. No final, o que funcionou para mim (um pouco de hack, mas ei, o que mais você pode fazer), foi descobrir qual é o número do certificado e removê-lo manualmente das chaves logo após o xcodebuild ser chamado. Primeiro, vá para o diretório / usr / bin / (ou qualquer diretório que tenha o arquivo xcodebuild, tente
which xcodebuild
) e execute o seguinte comando:Em seguida, crie um arquivo usando seu editor favorito (não se esqueça de sudo) com o seguinte código:
Nota: você terá que modificar seu arquivo sudoers para ter acesso e executar este comando específico sem ter que digitar uma senha.
Substitua a identidade hexadecimal após -Z acima pela identidade hexadecimal do certificado zumbi ofensivo. Finalmente, certifique-se de que o arquivo xcodebuild seja executável:
Agora você pode abrir seu keychain e executar o comando build e observar como o certificado zumbi ofensivo é ressuscitado e, em seguida, sumariamente disparado antes de se tornar um problema para a assinatura de código. Espero que a Apple encontre uma solução real para isso.
fonte
No meu caso, excluir os certificados não funcionou. O XCode 4 parece armazená-los em cache ou restaurá-los. O truque que finalmente funcionou para mim foi ter o keychain e o xcode em execução. Então, no keychain, arraste meus 2 certificados (dev + dist) de 'login' para 'sistema'. Em seguida, as duplicatas reapareceram magicamente e eu fui capaz de excluí-las, e então arrastei os certificados de volta para 'login'
fonte
É muito fácil, exporte o certificado correto para o seu desktop. Exclua esse certificado das chaves. Tente construir o código-fonte com a mensagem de erro (não tem cert ..) Em seguida, importe novamente o certificado. => Sucesso!
fonte
Acabei de excluir uma das chaves privadas do meu chaveiro para o certificado de que não preciso mais.
Mesmo que o certificado seja reaplicado, a chave privada não reaparece. Agora verifique os certificados válidos e apenas um certificado aparecerá e os outros certificados cuja chave privada foi excluída não serão mais exibidos em certificados válidos.
Acho que essa é a maneira mais simples de resolver esse problema.
fonte
Eu estava lidando com o mesmo problema uma vez. E eu resolvi isso removendo o perfil de provisionamento não utilizado da guia Organizer no xcode. Na verdade, o Keychain obterá esse certificado a partir deste perfil de provisionamento, que é um certificado expirado ou a compilação por certificado revogado.
Portanto, você só precisa excluir este perfil de provisionamento da guia Organizer. O Organizer está no botão direito superior do xcode Abra-o e, no Organizer, remova os perfis de provisionamento que você não está usando.
Aqui está a imagem,
E não se esqueça de remover o certificado extra das chaves, mas depois disso esse certificado não aparecerá novamente.
fonte