Xcode “A chave privada para não está instalada neste mac - distribuindo”

99

Sempre recebo essa mensagem quando tento enviar meu aplicativo para a app store.

Aqui está uma imagem da mensagem:

cenário

Seria ótimo se alguém pudesse me ajudar a resolver esse problema para que eu pudesse enviar meu aplicativo para a loja.

Fabian Boulegue
fonte

Respostas:

90

Tente seguir estas etapas:

  1. Revogar seu certificado de distribuição iOS existente do site de desenvolvedor iOS.
  2. Gere um novo Certificado de Distribuição iOS indo para Preferências do XCode-> Contas-> Ver Detalhes e então clicando no + abaixo da lista de identidades de assinatura.
  3. Volte para o site do desenvolvedor e certifique-se de que todos os seus perfis de provisionamento estejam configurados com o novo certificado. (Todos eles devem ser listados como Ativos quando você terminar.)
  4. Volte para o XCode e atualize sua lista de perfis de provisionamento.

Tive o mesmo problema que você e isso o resolveu perfeitamente.

Ben Visness
fonte
Obrigado, sua solução salvou meu dia (eu estava xingando a Apple de 4 horas).
JJ86
Estou tendo o mesmo problema e as etapas propostas acima corrigem isso, mas estou encontrando outro agora ao validar o aplicativo "o pacote é inválido, novos aplicativos e as atualizações enviadas para a app store devem ser públicas" alguém pode ajudar isto?
Maystro
Muitas pessoas já fizeram essa pergunta: stackoverflow.com/…
Ben Visness
@Fabian Boulegue Acho que os votos indicam que esta é a melhor resposta. Se você pudesse marcar isso como aceito, seria ótimo :)
Ben Visness
Isso deve ser marcado como resposta. Funciona como um encanto
batgun
50

Isso resolveu para mim sem começar do zero:
1. Abra o Acesso às Chaves na máquina que foi usada para gerar as chaves privadas
2. Selecione Chaves-> Login e Categoria-> Certificados no lado esquerdo
3. Localize o dois certificados iPhone Developer: [seu nome de desenvolvedor] e iPhone Distribution: [seu nome de desenvolvedor]
4. Selecione ambos, clique com o botão direito e escolha Exportar 2 itens ...
5. Digite uma senha de sua escolha, salve em disco e obtenha o .p12 -arquivo para a outra máquina que não assinará
6. Abra o arquivo, digite a senha e pronto.

Kentrh
fonte
8
E se eu não tiver mais acesso à máquina que gerou as chaves privadas?
aaronsnoswell
2
@aaronsnoswell Você deve gerar novas chaves para a máquina na qual está trabalhando
Nik
Então você tem que gerar um novo.
HelloWorld
Depois de importar a chave privada para o meu chaveiro, ainda não funcionou para mim. No entanto, uma simples reinicialização fez com que funcionasse ...;)
fredpi
7. Reinicialize a máquina. Parece que ele não viu a nova chave privada no Keychain a menos que eu reiniciei. Presumo que seja porque você o está adicionando às chaves de login, que devem ser carregadas no login.
TenaciousJay,
15

Tendo um problema semelhante, após vários dias de teste, verificação, tentativa de reparo e assim por diante, o que funcionou para mim foi simplesmente:

  1. Abra as preferências do Xcode (painel de contas)
  2. Clique em "Gerenciar certificados".
  3. Adicione um novo certificado.

Então tudo começou a funcionar novamente.

insira a descrição da imagem aqui

Cue
fonte
12

Eu também experimentei isso e lutei com o processo por 4 horas. finalmente eu fiz o seguinte

  1. Excluí todas as chaves privadas e públicas e certificações em meu Acesso às Chaves
  2. Todos os perfis de provisionamento foram excluídos
  3. Excluídos todos os AppIDs - (Provavelmente não precisava fazer isso porque eu queria uma lousa limpa)
  4. Excluí minhas certificações no site Developer.Apple
  5. Criado novo Perfil de Desenvolvimento de Wildcard
  6. Criei um novo Perfil ESPECÍFICO para o aplicativo que estava implantando (portanto, ele tinha o nome do aplicativo em vez de *, no AppID)
  7. Criou um novo certificado de desenvolvimento a partir do site.
  8. Baixei o certificado intermediário (Worldwide Developer Relations Certificate Authority), pois também o limpei de minhas chaves
  9. Criei a Solicitação de Assinatura de Certificação (CSR), segui as instruções ao pé da carta para adicioná-la ao meu acesso keychain. e carregou o CSR.
  10. Assim que a certificação foi adicionada, certifiquei-me de renomear as chaves públicas e privadas e adicionei comentários à caixa de informações - para que pudesse me lembrar do que fiz.
  11. Criei um novo certificado de distribuição repetindo as etapas 7,9, 10 para a distribuição para que eu pudesse colocá-lo na App Store.

Espero que isso ajude alguém a saber que você pode apagar tudo e começar de novo. Eu carreguei todos os certificados em um velho Macbook Pro que começou a desmoronar na semana passada. Então, comprei um novo Mac Air na semana passada, mas não conseguia me lembrar de quais chaves, e certamente não me lembrava que tinha 2 conjuntos de um privado e um público para o desenvolvimento e um para a distribuição. (Se você tiver mais de 1 distribuição, acredito que terá conjuntos adicionais.)

Steve

SESPROUL
fonte
Lembro-me de ter passado por isso, com sucesso, no XCode 4. Você sabe como remover todos os perfis de provisionamento (etapa 2) no XCode 5?
Danny
1
Antes que alguém execute as etapas de "exclusão" de 1 a 4, seria aconselhável tentar exportar o certificado por meio do KeychainAccess, conforme descrito em um dos comentários abaixo, e importá-lo em sua máquina de destino.
andrewz
4
Que solução. Devo comprar um novo laptop também?
breakline
5

Encontrei o mesmo problema e depois de xingar a Apple, percebi que era minha culpa.

1.- Go to developer.apple.com / Certificates / Production
2.- Download your certificate

Isso funcionou para mim, obrigado depois de tentar outras respostas.

Alex Nolasco
fonte
baixou o certificado e adicionou-o ao acesso keychain. Mas não está funcionando.
famfamfam de
4

Vale a pena verificar o Acesso às Chaves para ter certeza de que não há várias chaves com o mesmo nome. Além disso, muitas vezes, quando tenho problemas de assinatura de código, a solução fastes tem sido reiniciar o processo (criar novos pares de chaves, certificados e perfis de provisionamento).

Boa sorte!

Fluffhead
fonte
4

Vá para Preferências -> Contas -> Selecione o ID Apple que você está usando -> clique no botão "Ver Detalhes ..." -> em seguida, clique no botão mais e selecione o botão "Distribuição iOS". Mais detalhes aqui .

ThomasW
fonte
3

Parece que você chegou a gerar um certificado de distribuição, então deve ter gerado um par de chaves em algum momento. Você desenvolve em várias máquinas? Exporte o perfil do desenvolvedor da máquina que o possui e importe-o para esta máquina.

Jim
fonte
Eu acredito que você também pode baixá-lo do prov. portal
El Guapo
Bem, normalmente eu desenvolvo apenas a partir desse computador ... bem, eu também tenho meu certificado de desenvolvedor e distribuidor, talvez seja outra coisa? Como informação aqui está uma imagem do meu perfil ... dl.dropbox.com/u/659484/pic%202.png
Fabian Boulegue
6
Não, você não pode baixar a chave privada do portal de provisionamento. É privado. Você não dá para a Apple.
Jim
2
O certificado é um arquivo que a Apple fornece que diz "Sim, esta chave privada foi aprovada pela Apple". A própria chave é separada. Você não tem a chave nesse computador, caso contrário, haveria uma seta de divulgação ao lado dela. Você deve ter tido essa chave em algum momento para o certificado existir. Se você não usa outros computadores e não o instalou em uma conta diferente em seu computador, você deve tê-lo excluído.
Jim
2
Se você não tem a chave privada e não pode restaurá-la de um backup, você terá que gerar um novo par de chaves, gerar um CSR para ele, fazer o upload do CSR para a apple, baixar o novo certificado que a Apple gera em resposta , crie um novo perfil de provisionamento de distribuição e use esse perfil para construir seu aplicativo. Basicamente, siga as instruções de configuração fornecidas pela Apple no início.
Jim
2

É simples, acesse a conta do usuário (talvez em outro mac) que foi usada para criar o certificado de distribuição. Abra o Keychain Access e exporte sua chave privada. Em seguida, instale-o em seu Keychain.

Atul Manwar
fonte
2

Meu problema era que o Xcode não estava na lista de controle de acesso da chave privada. Você pode corrigir isso no acesso das chaves sem gerar um novo par de chaves.

Abra o acesso do keychain. No lado esquerdo, selecione login e Meus certificados. Selecione seu certificado de distribuição e clique duas vezes em sua chave privada. Selecione o controle de acesso e adicione o Xcode à lista se não estiver lá.

Reinicie o Xcode e faça um novo arquivo. Deve encontrar a chave privada agora.

zprag
fonte
1

Na verdade, acabei de fechar e reabrir o xCode e então tudo voltou ao normal.

Ser Pounce
fonte
0

Eu tenho a solução:

Sua empresa tem um Company (Enterprise Distribution) .pem e CompanyEnterpriseDistribution.p12, você também deve instalá-los.

Sam
fonte
0

Eu tenho uma conta corporativa na apple. Resolvi o problema:

1) no site do desenvolvedor Certificados, identificadores e perfis
2) em Perfis de provisionamento -> desenvolvimento
3) acessei meu desenvolvimento Provisionamento -> editar
4), em seguida, baixe e clique duas vezes.

TtheTank
fonte
0

Experimente isso ..

  • Em "Preferências do sistema", selecione "Segurança e privacidade".

  • Clique no ícone 'Bloquear' no canto inferior esquerdo.

  • Altere 'Permitir download de aplicativos de' de "Qualquer lugar" para "Loja de aplicativos Mac e desenvolvedores identificados".

-Então tente construir.

hmdeep
fonte
0

Para aqueles que estão tentando atualizar um aplicativo depois de algum tempo, você precisa renovar seu Perfil de Porvisioning no Apple Development Center, e então simplesmente ir para Certificados no lado esquerdo do seu Apple Development Center, baixar o certificado de distribuição e abri-lo .

O Xcode fará o resto e permitirá que você execute o aplicativo.

Felicidades!

V1 Technologies
fonte
0

Para mim é que não instalei meu certificado de produção. (Já instalei o certificado de desenvolvimento que)

Depois de baixar o certificado de produção e instalar no keychain, funcionou para mim.

Sahan Maldeniya
fonte
0

Isso resolveu para mim sem começar do zero:

  1. ReGere o arquivo "CertificateSigningRequest.certSigningRequest" por outro macbook.
  2. ReGenerate Certificates " * Grid Information Technology Co., Ltd"
  3. Gerar perfis de provisionamento novamente
tilintar
fonte
0

Estou criando e distribuindo ipas de desenvolvimento para meu aplicativo iOS beta. Tive repetidamente que adicionar novos dispositivos à lista dos permitidos e tive muitos problemas criados por isso. Desta vez, estou documentando e compartilhando um problema e a solução ...

Eu adicionei um novo udid à minha lista no centro de desenvolvedores, construí um arquivo e descobri que o ipa não foi encontrado no perfil embutido no ipa. Então, eu atualizei meus perfis de provisionamento no XCode (para obter uma lista atualizada) e este erro foi causado com a falta da chave privada (conforme descrito no início deste tópico).

Então, não consegui construir outro arquivo. Além disso, isso criou erros de assinatura de código ao tentar construir o projeto.

Depois de muita dor, eu consertei assim:

No XCode, vá para Preferências ... Guia Conta. Clique no botão adicionar (meio esquerdo) e selecione "Desenvolvimento iOS". Isso criará uma nova identidade de assinatura.

Agora você deve ser capaz de usar o novo perfil de provisionamento para criar o arquivo.

Além disso, os erros de construção devem ser corrigidos. De volta ao projeto, guia "Geral", selecione a "equipe" e tente a compilação novamente. Pode haver algumas caixas de diálogo de permissões adicionais. Clique em "consertar" ou "sempre permitir" quando solicitado.

Nota: A lista do Member Center e do Key Chain se tornará uma bagunça, com duplicatas para assinaturas de ids, mas pelo menos tudo funciona. Você pode querer tentar limpá-lo ...

BuvinJ
fonte
0

Eu criei um novo certificado de distribuição, editei meu perfil de provisionamento existente para apontar para esse novo certificado e, em Xcode> preferências> conta> ver detalhes, atualizei meus certificados de assinatura.

funcionou como um encanto

ajbraus
fonte
0

Tenho outra resposta (além da minha postagem anterior). Hoje, minha chave privada expirou (como descobri olhando para KeyChain Access), e uma nova estava na lista. Quão? Idk ... Talvez usando o botão "consertar o problema" do XCode que me foi apresentado ou puxando uma atualização para perfis de provisionamento como descrevi em meu outro post, um novo foi criado automaticamente? ...

De qualquer forma, entrei no centro de desenvolvimento, encontrei o perfil de provisionamento que queria usar e cliquei em "editar". Pude então selecionar "Certificados". Descobri que o desejado não foi selecionado. Selecionei e cliquei em "gerar" para recriar o perfil de provisionamento. Então consegui fazer o download. Arrastei e soltei o arquivo no ícone do dock do XCode. Isso resolveu tudo!

BuvinJ
fonte
-2

isso vai acontecer porque você formatou seu mac e reinstalou-o ou está desenvolvendo de um novo mac.

se você não pode fazer o acima e ter seu certicato antigo e perfis exportados do antigo mac

você precisará remover os perfis de aprovisionamento curinga do apple developer center, e também dos certificados, você precisará remover os antigos apenas os certificados gerais de desenvolvimento e produção.

então, você terá que criar novos e criar novos perfis de provisionamento para o aplicativo que você precisa carregar na apple.

você não precisa excluir todos os perfis de provisionamento por enquanto, mas com certeza precisará criar novos para os aplicativos que não criou para eles.

Albaiti
fonte