Xcode 8 mostra erro que o perfil de provisionamento não inclui certificado de assinatura

224

O Xcode 8 mostra o erro de que o perfil de provisionamento não inclui o certificado de assinatura.

Esse problema ocorre no Xcode-8 somente no Xcode 7, o mesmo perfil de provisionamento mostrando o certificado identificado relacionado.

Satish Mavani
fonte
1
Você precisa: a) atualizar seu perfil de aprovisionamento com o certificado desejado ou b) instalar o certificado (talvez seja necessário migrá-lo de outro mac com chave privada também, se ele não foi originalmente configurado no mac)
pedrouan
1
a) atualize seu perfil de aprovisionamento com o certificado desejado. - Eu já fiz isso, mas não funcionou b) instalar o certificado - o certificat já está instalado e foi criado na mesma máquina, portanto, não preciso exportar nenhuma chave ou algo assim. E como eu disse, não há nenhum problema com o xcode 7 na mesma máquina. que significa que não há qualquer problema com a instalação
Satish Mavani
Verifique isso, bastante fresco: stackoverflow.com/questions/39565906/...
pedrouan

Respostas:

253

Existem várias maneiras de corrigir isso, como ativar a assinatura automática, etc. Mas se você quiser entender o motivo desse erro, consulte a mensagem de erro.

Ele diz que o perfil de provisionamento que você selecionou na "guia Geral" não contém o certificado de assinatura selecionado em "Configurações de compilação" -> "Identidade de assinatura de código".

Normalmente, isso acontece se um certificado de distribuição tiver sido selecionado para a identidade de depuração em "Configurações de compilação" -> "Identidade de assinatura de código".

Se isso acontecer em "Assinatura (depuração)", também poderá ser que "Identidade de assinatura" -> "Desenvolvimento iOS" não esteja incluído no perfil de provisionamento.

Eystein Bye
fonte
49
Você é um gangster certificado.
J.beenie 28/09
4
Uau! Esta é a resposta real à pergunta. Querendo saber por que não é a resposta aceita. Obrigado senhor!
Junaid Mukhtar
1
A maneira inteligente que todo desenvolvedor inteligente deveria ser.
Almas Adilbek
1
Isso deve ser marcado como resposta aceita, que explica o problema e a solução, e não a geração aleatória do Xcode.
Andreas777
1
Essa é uma resposta brilhante
pecador
186

Verifique no seu chaveiro as identidades que estão faltando uma chave privada. Eu tinha vários certificados de distribuição instalados para a mesma equipe, um dos quais estava faltando a chave privada. O Xcode estava apenas checando a primeira identidade correspondente no chaveiro e usando-a automaticamente em oposição à que incluía a chave privada.

insira a descrição da imagem aqui

A remoção da identidade correspondente que não tinha uma chave privada fez o Xcode detectar a identidade correta novamente.

usuario
fonte
Obrigado! Exatamente o que estava acontecendo aqui
Thomás Calmon
9
Não resolveu o problema para mim. Provavelmente, esse é um daqueles problemas que podem ocorrer por várias causas raiz.
Ash
3
Todos os meus certificados têm chaves privadas, então definitivamente a causa pode ser diferente.
precisa saber é o seguinte
8
No meu caso, havia vários Certs (= identidades de assinatura) no chaveiro de login com o mesmo nome, mas de datas diferentes (nota no chaveiro do sistema , obtive apenas um que estava com a data correta). Remover todos, exceto o correto, fez o truque.
precisa saber é o seguinte
5
Semelhante ao @ RAM237, tenho vários certificados com o mesmo nome que ainda têm chaves privadas anexadas. Remover todos, exceto o correto, ajudou.
Junjie
87

Para consertar isso,

Eu apenas ativei o "Gerenciamento automático de assinatura" na guia geral de configurações do projeto. Antes de ativar, eu tinha medo de que ele pudesse ter alguns efeitos colaterais, mas, uma vez ativado, isso funciona para mim.

Espero que isso ajude os outros! insira a descrição da imagem aqui

Satish Mavani
fonte
Resolva esse problema, mas ocorreu este erro, "<desconhecido>: 0: erro: O Swift não suporta o comando 'iPhoneSimulator9.3.sdk' do SDK '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/ bin / swiftc falhou com o código de saída 1 "
Mohsin Qureshi
1
Você deve tentar reiniciar o seu simulador e excluir dados derivados.
Satish Mavani 22/09
Eu tentei, mas não funcionou. basicamente mostrando devido ao Alamofire. Eu acho que o swift 3 não é compatível com o Alamofire 3.0
Mohsin Qureshi
Eu tentei o mesmo, mas me deu esse erro * tem configurações de provisionamento conflitantes. * é assinado automaticamente para desenvolvimento, mas uma identidade de assinatura de código conflitante do iPhone Distribution foi especificada manualmente. Defina o valor da identidade de assinatura de código como "iPhone Developer" no editor de configurações de compilação ou alterne para assinatura manual no editor de projeto.
user3625547
22
Pior idéia, você perde todas as suas configurações, deixando o xcode manipular seu certificado. O bastardo preguiçoso do Xcode irá gerar novos certificados!
Silom
64

Para aqueles que devem continuar usando não auotamatic por algum motivo

Abra o keyChain Access para ver se há duas mesmas certificações. Se houver duas ou mais, basta excluir uma e ela funcionará :)

d0ye
fonte
Isso realmente ajudou.
Ron
Se alguém encontrar essa pessoa na rua, compre uma cerveja para ela. Obrigado
Greg Hilston
2
Ele / ela não pode ser visto na rua porque os pingüins não são encontrados nas ruas, mas no mar. a propósito. Obrigado.
precisa saber é o seguinte
Este foi para me :)
slippytoad
34

Eu enfrentei esse problema após atualizar recentemente o Xcode para a versão 9.3. O problema estava no certificado de assinatura de código (em depuração) definido como certificado de distribuição em vez de certificado de desenvolvimento, o que me impediu de instalar o aplicativo nos meus dispositivos.

Aqui está o que eu fiz para resolver esse problema.

Projeto -> Alvos -> Selecione seu aplicativo -> Configurações de compilação -> Identidade de assinatura de código -> Depuração -> Toque duas vezes em "Distribuição do iPhone" e altere-o para "Desenvolvedor do iPhone".

Mussa Charles
fonte
Isso foi tão simples, mas lutou com isso por um tempo. Obrigado, gentil senhor.
JM-AGMS
Ótimo. Funcionou perfeito. Por que isso não aceita como resposta certa?
ZhengGe Che 22/03/19
27

Desmarquei e marquei a opção "Gerenciar assinatura automaticamente". Isso consertou para mim.

Loke
fonte
Uma caixa de diálogo surgiu perguntando se eu queria ativar a assinatura automática. Mesmo que eu aperte cancelar, isso ainda funcionou.
aepryus
@JamesWierzba está em Geral-> Assinando. Assim como na resposta de Satish Maven acima.
Loke 07/02
MAIOR RESPOSTA
bubibu
Além disso, basta alternar entre diferentes perfis para corrigi-lo. Você também pode precisar limpar as chaves primeiro pela resposta anterior.
MindWire
23

Pelo que vale a pena, a assinatura automática falhou todas as vezes até que eu excluísse manualmente os perfis locais em: ~ / Library / MobileDevice / Provisioning Profiles

Depois disso, a assinatura automática funcionou perfeitamente e obteve os perfis certos nos servidores da Apple.

Isso estava afetando apenas algumas versões, especialmente aquelas para as quais eu havia criado perfis manualmente para o aplicativo de exibição.

blackjack75
fonte
2
Para mim, eu não tinha duplicatas, mas depois de excluir e baixar novamente meus perfis de provisionamento, parecia funcionar corretamente.
Julian K.
2
Eu tentei de tudo e nada funcionou até apagar os perfis existentes e deixando Xcode re-download-los
Ron Myschuk
1
Desculpe, como posso acessar esses perfis ~ / Library / MobileDevice / Provisioning? Pesquisei no localizador e não encontrei nenhuma pasta "Biblioteca".
Chen Li Yong
1
@ChenLiYong Essa é uma pasta oculta. Pressione CMD + Shift + . para mostrar todos os arquivos ocultos.
tmuecksch
19

Para quem ainda luta com esse problema no Xcode8. Para mim, havia um problema duplicado de certificado, é assim que eu resolvi:

Li a resposta de Nick e comecei minha investigação. Eu verifiquei todas as chaves e certificados no meu caso particular (dentro de ~ / Library / Keychains / System.keychain).

Quando abri o arquivo, descobri que tinha dois certificados de distribuição do iPhone (que era o certificado que o Xcode estava me solicitando), um com a chave privada de distribuição do iOS que eu uso desde o início e outro certificado de distribuição do iPhone que é seu A chave privada tinha um nome (distribuição iOS: NAME) que não me era familiar. Excluí este último certificado, iniciei o Xcode novamente e o problema desapareceu. O xCode não conseguiu resolver esse conflito e por isso estava dando erro de certificado de assinatura o tempo todo.

Verifique suas chaves, talvez você tenha um certificado duplicado.

S.Go.Mot
fonte
Exatamente o que aconteceu comigo.
funct7
Este é exatamente o problema no meu caso, eu tinha uma confusão quando a criação de Fastlane Jogo e acabou por ter 3 chaves duplicadas em meu Keychain
Minh Thai
18

Se você usar assinatura manual (o que eu recomendaria definitivamente), esse erro poderá ocorrer porque o Xcode acha que deve assinar uma compilação de versão com um certificado de desenvolvedor, que obviamente não está incluído em um perfil de provisionamento de versão.

Há uma configuração de compilação que define qual certificado deve ser usado para qual configuração de compilação. Para alterá-lo, vá para criar configurações e procure por Identidade de assinatura de código . Quando expandido, deve haver linhas separadas para cada configuração de compilação (geralmente Debug and Release) com na segunda coluna sua identidade selecionada (geralmente iOS Developer ou iOS Distribution). Verifique se está definido com a identidade correta para cada configuração de compilação.

Em alguns casos, as configurações de compilação também podem ser expandidas. Verifique se os subitens também estão definidos com as identidades corretas.

Marca
fonte
2
resposta perfeita,
Nasir
1
Obrigado! Era exatamente o que eu precisava.
Amadeu Cavalcante Filho
12

Você também pode resolver problemas de assinatura de código com o excelente kit de ferramentas Fastlane . Os autores se esforçam muito para automatizar efetivamente a construção, assinando aplicativos iOS (e mais).

Portanto, no conjunto mencionado, existe uma ferramenta sighque resolve magicamente quaisquer problemas de assinatura, daí o nome :) O interessante é que essa ferramenta encapsula um conhecimento sobre problemas comuns de assinatura e pode detectar e resolver a maioria deles.

O Fastlane é instalado como gem Ruby:

gem install fastlane

E então simplesmente invocado:

fastlane sigh --development

Responda a duas perguntas e pronto:

[11:56:55]: No existing profiles found, that match the certificates you have installed locally! Creating a new provisioning profile for you
[11:57:01]: Creating new provisioning profile for 'com.myapp' with name 'com.myapp Development'
[11:57:06]: Downloading provisioning profile...
[11:57:09]: Successfully downloaded provisioning profile...
[11:57:09]: Installing provisioning profile...

Por fim, vá para Build Settings -> Signing e mude para o perfil de provisionamento recém-criado, cujo nome você acabou de ver na saída do comando.

Este exemplo é para um problema de assinatura de código de desenvolvimento (em execução no dispositivo). Verifique a documentação do suspiro para todas as outras opções.

Tomek Cejner
fonte
Depois de ler a parte Configurações da compilação, percebo que posso escolher qual certificado a criação de perfil está usando. Obrigado.
Carlos Linares
12

Teve o mesmo erro. Perfis parece renovado, novos certificados adicionados, eu até chequei quando o download. Também revogou certificados de ex-desenvolvedor, excluídos do perfil de provisão. Mas o Xcode ainda me pergunta sobre certificados anteriores com erro:

No certificate for team 'MY_TEAM' matching 'iPhone Developer: FORMER_DEVELOPER' found

então, o que eu fiz para corrigi-lo:

  1. Ir Build Settings-> Signing->Code Signing Identity
  2. Encontre todos os certificados 'FORMER_DEVELOPER' e escolha necessário.

Espero que ajude alguém.

Zaporozhchenko Oleksandr
fonte
Muito obrigado .. Isso me ajudou a resolver o meu problema
Gokul G
9

No meu caso, no chaveiro, eu tinha dois certificados com o mesmo nome, removi um do certificado duplicado e resolvi o problema.

Arshad Shaik
fonte
Pode confirmar, foi o problema no meu caso também.
atereshkov
5

"Ativar assinatura automática" e, em seguida, selecionar uma equipe no menu suspenso me ajudou com esse problema exato.

Urdidura
fonte
4
  1. Exclua o certificado de desenvolvedor que não possui uma chave privada.
  2. Exclua o perfil de provisionamento da sua máquina usando vá para a pasta (~ / Library / MobileDevice / Provisioning Profiles)
  3. Em seguida, marque primeiro e desmarque a opção Gerenciar assinatura automaticamente nas configurações do projeto com a seleção de equipe.
  4. Cante na conta de desenvolvedor da Apple e edite o perfil de provisionamento, selecionando todos os certificados de desenvolvedor disponíveis, faça o download e adicione ao XCODE.
  5. Selecione o perfil de fornecimento e a identidade de assinatura de código nas configurações de construção do projeto
PS_dev
fonte
4

Xcode 11

Este é o erro que recebi

O perfil de provisionamento "XXX" não inclui o certificado de assinatura "Apple Development: XXX (XXX)". `` `

Agora, o Xcode 11 criou automaticamente um certificado "Apple Development: XXX", válido para todas as plataformas

https://developer.apple.com/account/resources/certificates/list

Você só precisa

  1. Vá para https://developer.apple.com
  2. Vá para o seu perfil de provisionamento
  3. Verifique se este certificado está selecionado
Ted
fonte
4

Eu tinha as chaves privadas restantes dos certificados revogados, os certificados haviam sumido, mas não as chaves privadas. A exclusão deles resolveu o problema.

Para encontrá-los:

  1. Acesso ao chaveiro aberto
  2. Clique em "Teclas" na categoria no menu lateral esquerdo
  3. Procure chaves iOS Developer: ... "que não tenham um certificado vinculado a elas
  4. Eu os apaguei e o problema desapareceu

A chave destacada na imagem é uma chave privada de amostra sem certificado.

O item destacado era uma chave que causava problemas, excluindo-o

Dylan w
fonte
3

Eu tenho o mesmo problema. Eu mudei o mac. E quando baixei o certificado Xcode, recebi uma mensagem de erro: "O erro é que o perfil de segurança não inclui a assinatura do certificado".

1) Acesse https://developer.apple.com/account/ios/profile/limited/edit Selecione o projeto => edit => Certificates => Certificates => Select All => Create => Download

2) No Xcode: arquivo de projeto => assinatura (depuração) => perfil de provisionamento => perfil de importação => selecionar arquivo com 1

maxwell
fonte
2

Para mim, nenhuma das soluções acima funcionou. Eu estava migrando de dois macs mais antigos para um novo, tentando obter perfis de liberação / depuração trabalhando no Xcode SEM o Xcode gerenciando-os automaticamente.

A solução para mim foi que, quando criei os dois novos Certificados, também precisei entrar em meus perfis de provisionamento e adicionar (sob a distribuição e o desenvolvimento) os novos certificados aos perfis de provisionamento para reconhecê-los. Depois de fazer isso e fazer o download, o xcode removeu todos os erros e é bom continuar.

Espero que isso ajude alguém!

Jprofficial
fonte
2

Eu recebi um desses e-mails da Apple:

Dear John Doe,

O seguinte certificado foi revogado por um membro da sua equipe de desenvolvimento ou expirou:

Certificado: Desenvolvimento iOS

Nome da Equipe: Honey Team, LLC

Isso não afeta os aplicativos que você enviou à App Store ou sua capacidade de atualizar seus aplicativos. Se você estiver usando perfis de provisionamento que contêm este certificado, eles deverão ser recriados antes de poderem ser reutilizados. Para detalhes, consulte a seção "Visão geral da assinatura de aplicativos" da Ajuda do Xcode.

Cumprimentos,

Suporte ao programa de desenvolvedor da Apple


Criei um novo certificado que revogava o certificado anterior (localmente e no Mac de qualquer outro desenvolvedor). Para que ele funcione, preciso baixar os novos perfis de provisão.

A solução é:

  • faça login na conta de desenvolvedor da Apple
  • remover / revogar os certificados anteriores criados em meu nome.
  • adicione o novo certificado ao perfil de provisão. Você pode identificar o mais novo pela data de validade
  • faça o download novamente do Xcode. Xcode >> Conta >> Download de todos os perfis
  • reinicie o Xcode

Eu pessoalmente não tinha esse acesso. Esse acesso estava disponível apenas para o administrador da nossa equipe, portanto, não tenho capturas de tela nem tenho certeza se essas etapas estão 100% corretas.

Mel
fonte
2

Ainda não vi isso mencionado, mas se você ainda estiver com problemas após recriar seus perfis de provisionamento, excluir os existentes na pasta Perfis de provisionamento, verificar se há dupes em seu chaveiro, etc. (todas as outras respostas ITT), abra seu Alvo> Configurações de compilação> Assinatura de código e verifique se tudo parece consistente lá. Por exemplo, eu havia alterado o Código de Identificação e Identificação para Depuração para uma identidade de Distribuição, que obviamente não funcionaria, pois o Perfil de Provisionamento de Desenvolvimento não possui o certificado de Distribuição e estava causando o erro em primeiro lugar.

Cumanzor
fonte
Obrigado! - No meu caso, em Destino> Configurações de compilação> Identidade de assinatura de código> Versão foi definido como Desenvolvedor iOS em vez de Distribuição iOS.
Fiach Reid
2

Se você estiver tentando carregar seu aplicativo no iTunes Connect (seus perfis de provisionamento estão definidos como Distribuição), vá para Configurações do projeto -> Configurações da compilação -> Assinatura de código. Certifique-se de definir todas as opções de depuração e versão como seu perfil de provisionamento de distribuição.

Niall Kehoe
fonte
2

O problema parece começar a acontecer no Xcode 11 .

  • Vamos para Apple Developer
  • Encontre o perfil de fornecimento correto
  • Pressione Editar no canto superior direito
  • Escolha o (Distribuição) opção em Certificados. (Eu acho que é uma nova opção / tipo de certificado que a apple introduziu, embora eu não tenha encontrado nenhuma documentação)
  • Opcional: exclua todos os perfis de provisionamento em (~ / Library / MobileDevice / Provisioning Profiles /),
    vá para Xcode -> Preferências-> Contas-> Baixar perfis do manual

insira a descrição da imagem aqui

Mike.R
fonte
Não está trabalhando para mim.
Shourob Datta
1

Aqui estão as etapas resolvidas para mim (para aqueles que enfrentam o mesmo problema no XCode 9.2):

  1. Apenas exclua manualmente os perfis locais em ~ / Library / MobileDevice / Provisioning Profiles.

  2. Excluiu e criou todos os certificados e perfil de provisionamento da conta de desenvolvedores.

  3. A conta de desenvolvedores foi removida do Xcode e a adicionou novamente.

Resolvido meu problema! :-)

Shoaib Bagwan
fonte
0

Clicar e depois cancelar "Ativar assinatura automática" funcionou para mim, embora a alteração real tenha sido:

ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;

ou no Xcode é chamado Always Embed Swift Standard Libraries

tristanl
fonte
0

Eu tive o mesmo problema e o motivo era centavo. Perfil e certificado incorretos foram selecionados nas configurações de compilação. Eu só tinha feito isso antes de alguns dias. Portanto, você não precisa habilitar "automático" dentro do xcode. Verifique os perfis dentro de suas configurações de compilação antes de fazê-lo.

Ruchi
fonte
0

Tente baixar os certificados / perfis diretamente do centro de membros, em vez de fazê-lo no Xcode.

Funcionou para mim quando os baixei manualmente do centro membro.

Somya
fonte
0

Eu estava lutando com isso por muitos dias.

Etapa 1: todos os certificados, perfil de provisionamento, appID, chave etc foram excluídos da conta do desenvolvedor.

Etapa 2: recriou os certificados de notificação por push, perfil de provisionamento, ID do aplicativo etc.

Etapa 3: excluídos todos os certificados do chaveiro.

Etapa 4: limpe todo o perfil de provisionamento de ~ / Library / MobileDevice / Provisioning Profiles.

Etapa 5: adicionado apenas o arquivo de provisionamento necessário e testado. Funciona bem.

AG
fonte
0

Isso significa que você precisa executar 1 dos itens abaixo:

  1. Você deveria ter criado um certificado no Developer Center e incluído esse certificado no perfil de provisionamento que será importado para o XCode.
  2. Caso contrário, se você estiver usando um certificado criado por outra pessoa, faça com que eles compartilhem / exportem o certificado e a chave privada (arquivo .p12) para você e precisará incluí-lo no chaveiro. Consulte aqui

Uma solução para o item 2 quando você não conseguir obter o certificado & o arquivo .p12 do criador seria apenas marcar a opção 'Gerenciar assinatura automaticamente'.

javatogo
fonte
0

Isso acontece porque o perfil de provisionamento não consegue encontrar o arquivo do certificado ao qual está vinculado.

Consertar:

  1. Verifique qual certificado está vinculado ao seu perfil de aprovisionamento clicando em editar no seu perfil de aprovisionamento na seção Certificados, identificadores e perfis do painel Apple Developer
  2. Faça o download do certificado no painel
  3. Clique duas vezes no arquivo para instalá-lo em seu chaveiro
  4. Arraste o arquivo para o Xcode para ter certeza de que ele está vinculado

O erro deve ter desaparecido agora.

Jack Vial
fonte
0

Esse problema ocorre porque a chave privada no certificado em seu perfil não corresponde à do seu chaveiro. Eu resolvo isso por

  1. exclua todo o certificado de desenvolvedor do iPhone no chaveiro.
  2. exclua todos os certificados na conta da apple.
  3. usando xcode "Gerenciar certificados" para adicionar um certificado, em algum momento você ainda possui um certificado em seu Mac, mas não sei onde ele está no momento e, se adicionado com êxito, sua conta da Apple exibirá esse certificado também e você poderá criar seu perfil com esse certificado e download ... salte 5
  4. se você usar "Gerenciar certificados", não poderá adicionar o certificado, poderá criar um novo certificado e permanecerá etapas.
  5. terminar.

mesma resposta com o problema de assinatura de código no Xcode versão 8 .

Yu Chai
fonte