Xcode 10: um perfil de provisionamento válido para este executável não foi encontrado


222

Desde ontem, recebi o seguinte erro ao tentar executar um aplicativo no meu dispositivo: "Não foi encontrado um perfil de provisionamento válido para este executável.". Isso ocorreu após a atualização para o Xcode 10. A criação do Xcode 9 na semana passada funcionou sem problemas.

Eu verifiquei as outras discussões sobre o erro, mas nenhuma das soluções funciona.

O problema não se limita a um único projeto no qual estou trabalhando, pois afeta vários de diferentes equipes de assinatura.

Até agora, tentei o seguinte:

  • Projeto de limpeza

  • Limpando Dados Derivados

  • Desinstalando o Xcode, excluindo quaisquer preferências e arquivos relacionados a ele.

  • Instalando o Xcode em um Mac completamente diferente

  • Testando com dispositivos diferentes

  • Desativando o dispositivo no perfil do desenvolvedor e deixando o Xcode ativá-lo novamente.

  • Excluindo todos os certificados no portal do desenvolvedor e recriando-os

  • Desmarcando e verificando novamente "Gerenciar assinatura automaticamente"

  • Descartar o perfil de provisionamento e permitir que o Xcode o recrie

  • Criando um perfil de provisionamento manual no perfil do desenvolvedor

O projeto não contém testes, portanto não pode haver um problema com as configurações de assinatura incorretas nesse destino. Data / hora está definido como Automático

Uma coisa a observar é que nenhum perfil de provisionamento está listado aqui, exceto o manual que eu criei: https://developer.apple.com/account/ios/profile/

Eu esperaria que o xcode gerasse um para aparecer como todos os outros clientes.

Abaixo estão as configurações de assinatura que estou usando no momento

configurações de perfil de provisionamento

Ainda estou tentando fazer o downgrade do Xcode para uma versão mais antiga para ver se isso funciona. Fora isso, não tenho idéia do que tentar em seguida.


Você adicionou a conta de desenvolvedor às preferências do Xcode?
Ankit Jayaswal # 20/18

@AnkitJayaswal Várias vezes, nunca o fiz funcionar. No entanto, consegui resolvê-lo fazendo o downgrade para a 9.4.1, de modo que o problema parece estar relacionado ao Xcode 10 de alguma forma. Você deve enviar aplicativos com a versão antiga do Xcode por um tempo, certo?
Daniel Andersson

2
Sim, você pode enviar as compilações do xcode 9 e sua versão até março de 2019 developer.apple.com/ios/submit
Ankit Jayaswal

Também tentei com o Xcode 10 e não estou enfrentando esses problemas missing provisioning-profile.
Ankit Jayaswal 20/09/19

3
Você alterou a data do seu iPhone para além dos dados de validade do seu certificado? Eu enfrentei esse problema por esse motivo.
Anuved Nayak,

Respostas:


478

Eu estava lutando com isso hoje, foi super frustrante. Por enquanto, basta entrar em "File"> "Project Settings..."(ou em alguns casos "Workspace Settings...") e selecionar "Legacy Build System"no "Build System"menu suspenso.


1
Isso funcionou para mim também, para que eu possa criar aplicativos com o Xcode 10 sem a necessidade de reverter para o Xcode 9. Enviei uma compilação ao App Store Conenct e pude publicá-la no TestFlight. Portanto, existem algumas soluções disponíveis até que o problema seja corrigido corretamente. Alguma observação da Apple dizendo por quanto tempo você poderá usar o sistema de criação herdado ao enviar aplicativos?
Daniel Andersson

9
Mas o que isso significa? Que efeito isso tem e como sabemos que podemos alterar as configurações novamente?
Siyah

4
Isso funcionou em uma construção Cordova - excelente trabalho. Evidentemente, a CLI do Cordova tem um argumento a ser ignorado: cordova build ios --buildFlag = '- UseModernBuildSystem = 0' Veja mais aqui: github.com/apache/cordova-ios/issues/407
Victor

6
Não há configurações do projeto em arquivo. Eu tive que clicar em Configurações da área de trabalho e, em seguida, selecione "Sistema de compilação herdado" na lista suspensa Sistema de compilação nas Configurações da área de trabalho compartilhada e por usuário.
diabo vermelho #

9
Não funciona para mim: ((. Minha versão do Xcode é 10.1. Minha versão do iPhone OS é 12.1
Hamed Ghadirian

94

@ Stephen tks isso resolvido para mim. Eu só preciso ir -> Arquivo -> WorspaceSettings -> Configurações de compilação (mude aqui para "Sistema de compilação herdado")insira a descrição da imagem aqui

insira a descrição da imagem aqui


1
Frustrante, isso é tudo o que funcionou para mim também. Registrei meu UDID, criei meu perfil, tenho um certificado de desenvolvedor, está tudo vinculado ao aplicativo que estou desenvolvendo, fiz tudo o que você deve fazer para poder executar diretamente no dispositivo, ainda falha sempre - até que eu mudei para legado, trabalhou primeira vez ...
Grant

62

[edit] Nota 2020: Eu costumava assinar manualmente este projeto. Nos projetos em que assinei automaticamente, nunca tive esse problema. [/editar]

Eu tive o mesmo problema e passei horas procurando uma resposta, removendo perfis, limpando projetos e assim por diante.

Você distribuiu seu aplicativo? Você precisa voltar ao seu perfil de desenvolvedor, mas não em geral nas configurações do projeto, mas nas configurações de compilação .

Em Assinatura , observe sua identidade de assinatura de código .

Certifique-se de que seu Debug e Release estejam definidos como iOS Developer , e não iOS Distribution ; ou seu perfil de provisionamento para desenvolvedor do iOS, se não estiver definido com os valores automáticos.

O mesmo acontece com o perfil de provisionamento. Deve ser o seu perfil de desenvolvimento, e não o seu perfil de distribuição. insira a descrição da imagem aqui

Espero que isso ajude futuros desenvolvedores necessitados.


Para esclarecer (porque fiquei confuso com esta recomendação quando a li pela primeira vez): essa mudança de versão para iOS Developer ocorre apenas durante o teste diretamente em um dispositivo conectado; precisará mudar novamente para a distribuição iOS ao criar para fazer o upload na testflight / app store, certo?
Home

1
Honestamente: não. Eu não precisava fazer isso. Uma possível razão para isso acontecer foi porque eu tive que configurar os certificados novamente e possivelmente "instalar" a distribuição antes do desenvolvimento. Acho que sou eu, mas para responder sua pergunta: ainda os tenho configurados como Desenvolvimento e escolhi Distribuição ao arquivar a compilação para upload na App Store.
Rickard Elimää 23/11

2
Isso realmente me ajudou! <3
bobber205 19/03/19

Isso consertou para mim. Eu estava recebendo o problema apenas ao tentar criar um perfil do aplicativo, ele estava funcionando bem, eu o executei normalmente. Eu tinha uma conta de desenvolvedor para depuração e uma de distribuição para lançamento. Honestamente, isso me parece um bug do XCode / Profiling.
James

1
Conseguiu funcionar, mas precisava de mais um passo. Como eu estava lidando com testes em um iPhone conectado, não me preocupei em entrar na App Store e configurar meu certificado de "Distribuição iOS". Como eu estava desenvolvendo, presumi que apenas precisaria de uma configuração de certificado "iOS Development" na App Store. Bem, não funcionou até eu ter um certificado "Desenvolvimento iOS" e "Distribuição iOS".
Stagr.Lee

41

Eu tentei todas as soluções acima.

No entanto, no meu caso, após horas de dor de cabeça, foi por causa do projeto de teste que não há uma conta válida para provisionar a assinatura. Depois, selecionei uma equipe para provisionar no Projeto de Teste a assinatura gerenciada automática. Esse problema foi resolvido.


Como você fez isso?
red-devil #:

2
@ red-devil Então, você terá que atualizar o gerenciamento de assinaturas em todos os seus projetos de destino.
Chen

Obrigado cara, todas as respostas acima não resolveram o meu problema. Sua resposta fez a mágica.
HungrySoul 27/08/19

26

Use a pasta de compilação limpa (command + shift + K) e o aplicativo de reconstrução poderá em breve corrigir esse problema. No entanto, o tempo de compilação aumentará desde que você limpou a pasta de compilação.


1
Isso funcionou para mim (além de excluir dados derivados), enquanto as sugestões para usar o modo legado não funcionaram.
Chris

1
Acabou que para mim eu tinha uma equipe diferente para o meu objetivo normal versus o meu teste, que estava causando problemas que somente a exclusão de dados derivados poderia ser redefinida.
Chris

1
A limpeza exclusiva da pasta de compilação (comando + shift + K) corrigiu o problema para mim. Obrigado @JeromeLi!
Chilly

1
Tentei a resposta aceita ("modo legado") primeiro e funcionou para mim. Depois, voltei para "Novo sistema de compilação" e tentei a sugestão ("Pasta de compilação limpa"). Também funcionou. Portanto, para mim, essa é a melhor resposta.
User1527225

1
Isso funcionou para mim, obrigado. (Ps: apenas meu iPhone 11 teve esse problema, meu iPhone Xs Max não tem esse problema e o iPhone 11 foi a primeira vez que instalou meu projeto de teste)
RateRebriduo

13

Portanto, esse não será o caso para todos, mas pensei em publicá-lo aqui de qualquer maneira, pois parece não haver respostas relacionadas a ele.

No meu caso, eu estava trabalhando em um aplicativo que estava sendo desenvolvido no ReactNative, meu problema era que, embora minha assinatura estivesse correta no alvo principal do aplicativo, o alvo de teste não tinha nenhuma assinatura aplicada a ele.
Por alguma razão, o React Native exige que o destino do seu aplicativo e o destino do teste sejam assinados para instalar o aplicativo em um dispositivo.
Ele especifica isso na documentação oficial sobre a construção de dispositivos no entanto, é a única instância que eu já vi em que o destino de teste é criado ao lado do aplicativo para algo que não seja teste.

Para assinar seu objetivo de teste, vá para as configurações do seu projeto, abrindo o navegador do projeto (⌘1) e selecione o seu projeto na parte superior.

Dentro do editor principal, selecione seu destino de aplicativo principal em Destinos (deve ter o mesmo nome que seu projeto) e verifique se a assinatura está correta. Em seguida, selecione o destino de teste (provavelmente logo abaixo do destino de aplicativo principal, ele deve ter o mesmo nome em Testes anexado) e verifique se está assinado da mesma maneira.

Recrie seu aplicativo e ele deve ser instalado com sucesso.

O crédito por isso vai para Leo Lei, sua resposta aqui me salvou muita dor de cabeça: https://stackoverflow.com/a/48657358/732844

Como um aparte, se alguém souber por que reagir nativo exige que seu destino de teste seja construído ao lado do destino do seu aplicativo, eles podem me informar? A única razão pela qual consigo pensar é em simplificar a interface para que a reação possa criar um único aplicativo e executar tanto os testes quanto a execução sem a necessidade de reconstruir, mas estou apenas tentando adivinhar.


2
Isso corrigiu para mim onde nada mais fazia. Obrigado por postar.
Christian Chown

2
Muito obrigado por apontar isso. Renomeei o projeto e mudei de equipe. O alvo de teste tinha um nome de equipe antigo. Eu tenho lutado por horas agora. Muito obrigado novamente
Alix

Depois de horas de dor de cabeça, isso corrigiu para mim. Muito obrigado!
Johnson

8

No meu caso, aqui estão as etapas que eu resolvo os problemas:

  1. Vá para esta pasta: ~/Library/MobileDevice/Provisioning Profiles/
  2. Remova todo o perfil de provisionamento
  3. No menu Xcode 10> Produto> Limpar Pasta de Construção
  4. No menu Xcode 10> Xcode> Preferências> Conta> Baixar perfis manuais
  5. No menu Xcode 10> Produto> Compilar / Arquivar

O motivo para executar as etapas acima é remover os perfis de provisionamento antigos que atrapalharam o processo de criação.


6

Para nossa equipe, nada ajudou. Passamos alguns dias e testamos todas as etapas mencionadas aqui acima em respostas e comentários. Tentamos com o XCode 10 e até o XCode 9.2 em um aplicativo, que está na App Store há muitos anos.

O problema começou após a atualização para o MacOS Mojave. Infelizmente, voltar para HighSierra não ajudou em nada.

Pelo menos, conseguimos enviar novamente para a App Store depois de criarmos um novo perfil de certificado e provisionamento. Mas ainda não conseguimos mais testar nosso aplicativo no modo de liberação no dispositivo real, o que é necessário para testar as compras do InApp.

Em resumo: o arquivamento e o envio funcionam bem, rodando em dispositivos reais, não!

Vários desenvolvedores, vários dispositivos, macbooks, versões XCode ....

No final, tivemos que alterar o AppID para poder testar novamente no dispositivo real.

Para isso, executamos dois projetos diferentes agora: um para envio ao TestFlight / AppStore com o AppID real e outro para fins de desenvolvimento com outro AppID.

Embora isso só ocorra em UM aplicativo específico da nossa empresa e não em todos os outros, esperamos ter problemas semelhantes no futuro, à medida que as coisas piorarem com as ferramentas de desenvolvimento da Apple ...


5

Eu tive esse problema ocorrendo no Xcode 10.3 depois que mudei para o meu destino de teste de unidade XCTest e voltei para o objetivo de tempo de execução do projeto.

Acontece que eu selecionei equipes diferentes no meu perfil de provisionamento para cada destino.

Para fixar isso :

  • Pasta de criação limpa

  • Verifique se todos os destinos podem estar usando a mesma equipe. Consulte Assinatura de perfil na guia geral.

  • Se não estiver usando a mesma equipe para todos os destinos, limpe antes de mudar para um destino de construção com

    equipe diferente selecionada.


5

Verifique se o perfil de provisionamento vem da mesma equipe nos seus testes de destino e de destino.


1
Obrigado! Foi o problema que tive ao trabalhar com o React Native
Yannickv 18/12/19

4

No meu caso, a data e hora do dispositivo foi definida para uma data futura. Alterar a configuração da data para "automático" corrigiu o problema.


3

Eu estava enfrentando problemas com o mesmo problema, e a solução no meu caso foi fazer login nas contas de desenvolvedor. Após a atualização para o Xcode 10, todas as contas foram desconectadas.

Use o menu "Xcode -> Preferências ... -> Contas" e verifique se todas as contas usadas estão conectadas para que os perfis de provisionamento estejam acessíveis.


2

Eu tinha seguido todos os passos acima, mas não está funcionando finalmente. Fui criado como alvo duplicado e está funcionando bem. Não tenho ideia do que está errado, talvez problema de memória cache

insira a descrição da imagem aqui


1

Você mudou seu dispositivo de desenvolvimento? Aconteceu comigo quando comprei um iPhone novo e dei o mesmo nome ao meu dispositivo anterior. Uma compilação limpa, no entanto, corrigiu o problema.


1

Demorou muito tempo, e fizemos todas as soluções acima e elas não funcionaram, então nossa equipe decidiu remover Podarquivos e executar pod installnovamente. finalmente, nosso OTA carregou o ipa instalado no dispositivo do usuário. melhor solução

  1. limpo project menu > Product > Clean Build Folder e/Users/{you user name}/Library/Developer/Xcode/DerivedData

  2. vá para o diretório do projeto e remova Podfile.lock, Podspasta,pod_***.framework

  3. corra pod installnovamente

Feito


1

Eu tinha o caso em que meu aplicativo seria implantado no meu iPhone, mas não no meu relógio. A implantação no watch daria "Não foi encontrado um perfil de provisionamento válido para este executável". erro. Isso ocorre com o XCode Versão 11.2.1 e usando a conta de desenvolvedor gratuita.

Aqui está o que eu fiz para implantá-lo no meu relógio:

1) Excluí meu perfil de provisionamento no XCode. Eu fiz isso indo para Window -> Devices And Simulators. Em seguida, clique com o botão direito do mouse no nome do iPhone e escolha "Mostrar perfis de provisionamento". A partir daí eu poderia excluir o arquivo

2) Na tela Dispositivos e simuladores, também excluí meu aplicativo da seção "Aplicativos instalados".

3) Criou uma "pasta de compilação limpa" (Produto -> Pasta de compilação limpa)

4) Nas "Configurações de compilação" -> "Seção de assinatura", verifiquei se cada destino (iPhone, Testes e Watch) tinha as mesmas configurações (equipe de desenvolvimento, estilo de assinatura de código, perfil de provisionamento definido como automático etc.).

detalhes das configurações de construção

5) Verifique se o diretório ~ / Library / MobileDevice / Provisioning Profiles estava vazio.

6) Telefone desconectado do computador

7) Computador reiniciado, telefone e relógio

8) Conecte o telefone novamente ao computador e consulte as instruções "confie nesta máquina" no telefone e no relógio.

9) Ran app. Funcionou!


Tive o mesmo problema com o meu relógio de maçã, e isso me ajudou. Também desemparelhei e emparelhei novamente o meu relógio de maçã em algum lugar do processo. Obrigado!
Radu Vlad

1

Hoje, tive o mesmo erro ao instalar um aplicativo no meu dispositivo. O problema ocorreu após a atualização para o novo xCode 11.4.

O que fiz para corrigir o problema:

  • Dispositivo não emparelhado (Xcode> Janela> Dispositivos e simuladores> Clique com o botão esquerdo no dispositivo para desemparelhar o dispositivo.
  • Reinicie o iPhone
  • Pasta de criação limpa (Xcode> Produto> Pasta de criação limpa)
  • Limpar dados derivados (em ../library/Developer/Xcode/DerivedData)
  • Limpar a Pasta de Construção novamente (Xcode> Produto> Limpar a Pasta de Construção)
  • Crie o aplicativo no dispositivo.

No meu caso, corrigi o problema usando estas etapas sem desemparelhar o dispositivo.
Muhammad Yusuf

0

No meu caso, onde nada mais ajudou, fiz o seguinte:

  1. alterar o AppID para um novo
  2. O XCode gerou automaticamente novos perfis de provisionamento
  3. execute o aplicativo no dispositivo real -> agora funcionou
  4. altere novamente o AppID para o ID original
  5. trabalho

Antes disso, experimentei todas as etapas mencionadas aqui. Mas somente isso ajudou.


0

Para mim, mesmo que o certificado de distribuição e o perfil de provisionamento estivessem disponíveis para o Xcode, selecionar Assinatura de gerenciamento automático durante o processo de distribuição causava falha. Eu fiz o seguinte. Como mencionado anteriormente, criei um novo certificado de distribuição e perfil de provisionamento e, durante o processo de distribuição, selecionei manualmente o certificado e o perfil de provisionamento e Voilaaaa. Também verifiquei se estou na versão mais recente 10.1.


0

Parece que a Apple corrigiu esse bug no Xcode 10.2 beta 2 Release.

https://developer.apple.com/documentation/xcode_release_notes/xcode_10_2_beta_2_release_notes

Problemas resolvidos de assinatura e distribuição

Ao criar um arquivo morto de um aplicativo macOS e usar um certificado de assinatura de ID de desenvolvedor, o Xcode inclui um carimbo de data / hora seguro na assinatura do arquivo morto. Como resultado, agora você pode enviar um aplicativo arquivado para o serviço de notário da Apple com xcrun altool sem precisar primeiro assiná-lo novamente com um carimbo de data / hora. (44952627)

Ao criar um arquivo morto de um aplicativo macOS, o Xcode não injeta mais o direito com.apple.security.get-task-allow na assinatura do aplicativo. Como resultado, agora você pode enviar um aplicativo arquivado para o serviço de notário da Apple usando o xcrun altool sem precisar retirar esse direito. (44952574)

Corrigido um problema que fazia o fluxo de trabalho de distribuição relatar informações incorretas ou ausentes sobre o certificado de assinatura, o perfil de provisionamento e os direitos usados ​​ao exportar ou carregar um aplicativo. (45761196)

Corrigido um problema em que os arquivos .ipa reduzidos não estavam sendo assinados quando exportados do Organizer. (45761101)

A versão Xcode 10.2 beta 2 pode ser baixada aqui: https://developer.apple.com/download/


3
isso é ótimo. mas se você estiver criando aplicativos para a appstore, não permitirá que você faça o upload do ipa se estiver usando o software beta
Yasha 27/02/19


0

Depois que eu cansado a maior parte solução, eu encontrei o seu fazê-lo funcionar sem qualquer problema para mim, Sua resolvido por ir para developer.apple.com, em seguida, accountem seguida, Certificates, identifiers & profilese eu clicar no Alllink abaixoDevices e, em seguida, adicionar um novo dispositivo.

é necessário definir o nome do dispositivo e uuid e depois salvá-lo. Vá para xcode e limpe o cache, construa e todo o seu trabalho é bom.

Nota 1: verifique se sua equipe é verdadeira.

Nota 2: Você pode obter o uuid ao conectar o dispositivo ao seu dispositivo mac, clicar no iTunes e pressionar no rótulo de segurança. Você verá UUID.

O que esta resposta também é útil.


0

Eu tentei todas as respostas acima e não tive sorte. Depois disso, reinicio o iPhone e o problema parece ter desaparecido. Eu sei que é tão estúpido, mas funcionou. As respostas acima provavelmente resolvem o problema, mas se não, tente reiniciar o seu dispositivo iOS.


0

Assegure-se de que você:

1) Tenha um perfil de provisionamento registrado para o seu dispositivo.

2) O dispositivo deve ser adicionado ao perfil de desenvolvimento e atualizado.

Se você ainda tiver problemas, verifique as configurações de compilação do seu destino.

Assegure-se de que você:

1) CODE_SIGNING_REQUIREDin User-Definedestá definido como YES.

insira a descrição da imagem aqui

2) Verifique as Signingopções estão corretas. Se o problema persistir, mude para as configurações manuais em vez de automaticamente.


0

Encontrou mesmo problema, nós tivemos várias configurações de projeto Xcode, digamos Vamos Debug-Staging, Debug-Production. Em seguida, unificamos e usamos apenas uma configuraçãoDebug . Mas o antigo (que não existe mais) ficou preso no esquema para a fase de execução, portanto, uma vez que você tentou executar, o Xcode mostrou essa mensagem. O que faz sentido, pois os perfis de provisionamento são configurados nas configurações de compilação com base na configuração.

Então, o esquema de execução ficou assim:

Esquema de destino incorreto

Enquanto as configurações do projeto foram definidas dessa maneira.

Configurações do projeto

Alterar o esquema para usar a configuração que ainda está disponível no projeto foi o que corrigiu esse problema para mim.


0

Eu tive o mesmo problema (XCode 11) e nada funcionou o que foi escrito aqui.

Meu problema foi que eu tinha o iOS Beta (13.3) no meu telefone. Depois de reverter que tudo funcionou bem novamente.


Idéia: talvez o dispositivo armazene em cache algumas informações sobre o perfil de provisionamento também, para que uma redefinição de fábrica do telefone também possa corrigi-lo?



0

Eu fiz o seguinte:

  1. Desconectou o dispositivo em que o aplicativo não estava sendo instalado
  2. Conectou um dispositivo diferente <Instalou neste segundo dispositivo
  3. Depois de algum tempo conectado o primeiro dispositivo e funcionou!

Isso é muito estranho, mas funcionou para mim, pode funcionar para os outros e salvar a frustração.


0

Finalmente, eu descobri o que estava acontecendo ... quase me levou duas horas

Meu caso é que a data do meu telefone não está correta. Esqueci que mudei a data do meu telefone. Eu acho que isso faz com que todos os meus perfis de provisionamento expirem ...

Portanto, se você já tentou todas essas respostas, mas nada funciona. Vá para CONFIGURAÇÕES, verifique a data do seu telefone.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.