Certificado de distribuição / chave privada não instalado

102

Usando o Xcode 9.1, depois de construir um aplicativo iOS, quero arquivá-lo e carregá-lo na appStore para teste beta. Mas eu recebo o seguinte problema depois de clicar no botão Upload to the App Store...e escolher Automatically manage signing:

"My Name" tem um certificado de distribuição iOS, mas sua chave privada não está instalada.

Não sei por que essa "chave privada não está instalada", mas o certificado de distribuição pode ter sido criado em um computador diferente ou algo assim. Em qualquer caso:

Qual é a maneira mais simples de recuperar a chave privada ausente e instalá-la? Para fazer as coisas funcionarem.

Michel
fonte

Respostas:

82

Você só pode ter um certificado de distribuição. Ele une uma chave pública, conhecida pela Apple, com uma chave privada, que fica nas chaves de algum computador. Se este certificado de distribuição foi criado em outro computador, a chave privada está nas chaves desse computador. E este certificado de distribuição não funciona sem ele.

Portanto, para usar este certificado de distribuição neste computador, você deve encontrar esse computador, abrir o Acesso às Chaves, localizar e exportar a chave privada, enviá-la por correio ou de outra forma obtê-la neste computador e importá-la para as chaves deste computador.

Se você entrar no painel de preferências de contas no Xcode e clicar duas vezes em sua equipe, verá uma caixa de diálogo que fornece ajuda com isso. Se você vir seu certificado de distribuição e ele disser Não está no Keychain, você pode clicar com o botão Control nesse certificado para obter um item de menu que permite enviar um e-mail a quem criou o certificado e pedir que o enviem a você. Essa pessoa pode usar essa mesma importação para escolher Exportar certificado e pode enviar por e-mail o certificado exportado.

De qualquer forma, a chave privada ou o certificado exportado terão uma senha. Você precisará saber a senha para usá-lo.

mate
fonte
1
Minha primeira tentativa seguindo sua sugestão não funcionou. Provavelmente porque não fiz direito. Uma dúvida que tenho é quando vou para Acesso às Chaves, onde o certificado foi criado. Como faço para localizar a chave privada? Parece que o Keychain Access mostra, em alguns lugares, zilhões de objetos, todos com o mesmo nome. Portanto, não tenho certeza se fiz essa parte como deveria.
Michel
32
Bem, enviar um e-mail para mim mesmo fazendo a pergunta que estou fazendo agora provavelmente não será eficaz :)
Michel
1
Mas ainda acho que sua resposta me colocou no caminho certo, então preciso me aprofundar um pouco mais nisso.
Michel
Eu finalmente encontrei meu caminho para contornar esse problema. Mas infelizmente não terminei com todo o negócio de assinatura. Fiz uma postagem diferente com uma pergunta separada: stackoverflow.com/questions/47258499/…
Michel
Obrigado por este @matt! No meu caso, criei um certificado de distribuição do iOS usando o CSR que criei no meu dispositivo, mas quando o instalei no keychain, não há uma chave privada vinculada ao certificado. Posso compilar, mas não sei onde está a chave privada, então não pude fornecer o arquivo p12 para meus colegas de equipe. Embora seja um caso diferente, graças ao seu conselho sobre como ir para o painel Contas do Xcode, fui capaz de exportá-lo para o p12. :) Agora, está tudo bem, mas fiquei me perguntando onde diabos está essa chave privada escondida que não está aparecendo junto com o certificado no Keychain.
KarenAnne
284

Atualizado (julho de 2020) (xcode 10 - 12)

  1. vá para Xcode - Preferências - Contas - Gerenciar certificados
  2. Clique em +no canto inferior esquerdo e, em seguida,Apple development
  3. Espere um pouco e depois clique Done

Isso é tudo. Você também pode revogar o certificado antigo em developer.apple.com .

Resposta antiga

Etapa 1: - xcode -> produto -> arquivos -> Clique em gerenciar certificado insira a descrição da imagem aqui

Etapa 2: - adicionar distribuição ios insira a descrição da imagem aqui

Tanjima Kothiya
fonte
7
Isso não funciona porque nada acontece quando clico no sinal de mais. Não tenho a opção de 'Distribuição iOS'.
arnoldbird
2
Se eu acessar Gerenciar certificados via Xcode> Preferências> Contas, o sinal de mais está ativo, conforme mostrado na Etapa 2 acima.
arnoldbird
11
Esta seria a melhor resposta
kishorekumaru
2
Uau :-D. Consertou para mim. Ou isso não deveria ser possível ou o Xcode não deveria incomodá-lo em fazer isso.
Joshua R.
3
Atualmente no Xcode 10.3 Xcode - Preferências - Contas - Gerenciar certificados
Anton
26

Esta resposta é para a equipe "Um homem" resolver esse problema rapidamente, sem ler muitas informações sobre a "Equipe"

Etapa 1) Vá para o navegador da web, abra sua conta de desenvolvedor. Vá para Certificados, identificadores e perfis. Selecione Certificados / Produção. Você verá o certificado sem a chave privada listado lá. Clique em Revogar. E siga as instruções para remover este certificado. insira a descrição da imagem aqui Etapa 2) É isso! volte para o Xcode para validar seu aplicativo. Agora, ele solicitará que você gere um novo certificado. Agora você está feliz em enviar seus aplicativos.

Paulo
fonte
11

EDIT: Achei que o outro computador está morto, então estou corrigindo minha resposta:

Você deve exportar o certificado do primeiro computador com sua chave privada e importá-lo no novo computador.

Eu prefiro a forma do iCloud, faça backup no iCloud e pegue no novo computador.

Se você não puder fazer isso por algum motivo, pode revogar o certificado no site de desenvolvedores da Apple e, em seguida, deixar o Xcode criar um novo para você, ele também criará uma nova chave privada e armazenará em seu Keychain, apenas certifique-se de fazer o backup da sua maneira preferida

Yitzchak
fonte
2
É um conselho terrível.
matt
4
Pelo que sei, nada de ruim acontece ao revogar o certificado. Você sabe de mais alguma coisa?
Yitzchak
Sim; ele pode exportar a chave privada do computador 1 para o computador 2. O que você está aconselhando fará com que o certificado de distribuição pare de funcionar no outro computador! Por que isso é bom?
matt
2
Eu pensei que o outro computador estava morto
Yitzchak
7

Adicione um novo Certificado de Produção aqui , baixe o arquivo .cer e clique duas vezes nele para adicioná-lo ao Keychain.

Tudo ficará bem agora, não se esqueça de reiniciar o Xcode !!!

fujianjin6471
fonte
1
para mim o erro ainda apareceu, tive que clicar no botão de mais para atualizar e funcionar
Zack
6

revogar todos os certificados de distribuição para developer.apple.com e validar seu aplicativo no Xcode, haverá a opção de criar um novo certificado de distribuição depois de exportar a chave para uso posterior.

Este trabalho para mim.

Sohaib Siddique
fonte
4

Apenas para qualquer pessoa que passar por isso, as respostas acima estão corretas, mas ainda pode ser um pouco confuso, especialmente se você tiver vários certificados. Estas foram as etapas que tomei:

1) Primeiro, anote a data no certificado de distribuição real em que está faltando sua chave privada. Em seguida, vá para o aplicativo de chaveiro no outro computador e digite IOS na barra de pesquisa. Ele mostrará todas as suas chaves de distribuição e desenvolvedor do IOS, então você terá que encontrar a correta.

2) Clique na seta para a direita de cada entrada do IOS Distribution para revelar o certificado e encontrar aquele com a data correta e exportar aquele clicando com o botão direito e selecionar exportar.

3) Depois é só importá-lo nas chaves do novo computador e pelo menos com o XCode 9.3 ele imediatamente reconhece e corrige o erro para que você possa agora fazer o upload do seu arquivo.

Sam
fonte
Obrigado! Eu acrescentaria que na visualização padrão você não vê a seta para a esquerda que permite expandir a chave para revelar o certificado. Você precisa selecionar Chaves no painel Categoria. Só então você pode selecionar o certificado e exportá-lo. Se, em vez disso, você exportar a chave privada, obterá um erro ao importá-la para outro computador.
Clafou de
4

Se você está usando o certificado em um novo computador ou não. O mais fácil seria revogar o certificado anterior referente ao projeto. Em seguida, faça o upload novamente para a loja. O Xcode irá gerar um novo.

Chinedu Etoh
fonte
4

A resposta das pessoas aqui sobre ter a chave do computador sendo gerada é precisa. Mas se as coisas ainda estiverem falhando, tente reiniciar o Xcode depois de instalar um certificado

MobileMon
fonte
2

No meu caso, o Xcode não estava acessando os certificados do keychain, eu segui estas etapas:

  1. exclua certificados do keychain.
  2. reinicie o mac.
  3. gerar novos certificados.
  4. instalar novos certificados.
  5. limpar pasta de compilação.
  6. construir projeto.
  7. novamente limpe a pasta de construção.
  8. arquive agora. Funciona. É isso.
M. Mubeen Asif
fonte