Os direitos especificados ... perfil. (0xE8008016). Erro iOS 4.2


142

Estou recebendo o erro 'temido' The entitlements specified in your application’s Code Signing Entitlements file do not match those specified in your provisioning profile. (0xE8008016).ao tentar implantar meu primeiro aplicativo em um dispositivo sem jailbreak no iOS 4.2.6 (Verizon). O problema é que eu não tenho um Entitlements fileno meu projeto, pois não o estou distribuindo, apenas colocando-o em um dispositivo. Eu passei por todos os loops e loops que a apple coloca você (certificado, dispositivo, aprovisionamento) direto ao ponto, e não consigo descobrir o que está errado.

Alguém pode me ajudar com esse problema?



15
Estranho, eu tenho um voto negativo. A pessoa que fez isso, por favor, explica?
Richard J. Ross III

Essa pergunta realmente me ajudou, porque eu tinha um arquivo de direitos (e você mencionou isso me fez saber disso). A remoção da referência em Build Settings > Code Signing > Code Signing Entitlementsme permitiu criar este projeto.
Geoff

Respostas:


64

Acabei de me deparar com esse problema, o problema era que eu tinha um arquivo Entitlements.plist no projeto como parte de uma distribuição ad hoc e sua propriedade get-task-allow (ou seja, 'pode ser depurada') foi definida como NO - configurá-lo como SIM corrigiu o problema e permitiu que o aplicativo fosse executado a partir do Xcode4 no dispositivo em desenvolvimento.

Naturalmente, é necessário defini-lo novamente como NÃO para distribuições ad hoc, mas apenas pensei em mencioná-lo caso alguém encontre o mesmo problema.


Obrigado - isso finalmente resolveu o meu problema.
EasyCoder

Obrigado! Isso estava me matando.
alan

"get-task-allow = NO" fez meu aplicativo ver o iCloud, quando distribuído como AdHoc IPA.
Tertium 26/09/12

7
A propósito, verifique se você especificou a identidade correta do sinal exatamente em Destino -> Configurações da compilação , não no Projeto . O alvo substitui o Projeto . Esqueci-me disso e recebi a mensagem de erro 0xE8008016.
Tertium 26/09/12

Mais uma coisa, se o seu aplicativo usar 'iCloud Key-Value Store' nos direitos, você precisará remover essa chave para a versão Debug. Caso contrário, o aplicativo não será executado no seu dispositivo e continuará a dar esse erro, mesmo se você tiver 'get-task-allow' definido como YES.
strangetimes

50

Eu tive esse problema com o Xcode 4.2.1.

Para mim, não tinha nada a ver com o arquivo de direitos ou Ad-hoc ...

Eu estava voltando para um projeto antigo e tinha esquecido de adicionar meu novo iPhone à provisão.

Erro bobo, mas também uma mensagem de erro correspondente boba ...: - /


7
Erro bobo que aparentemente nós dois cometemos.
Patrick Bassut 23/11

5
Eu gostaria de poder +2, que mensagem de erro ridícula para este problema. Eu teria procurado por horas se não fosse sua postagem.
Wesley Smith

Obrigado por apontar, eu também cometi esse erro bobo. finalmente resolvido.
precisa

44

Se você estiver usando o react-native, verifique se o destino de Teste tem o mesmo perfil de provisionamento que o principal.


3
Muito obrigado, você salvou o meu dia
Julien Athomas

Você salvou meu bacon #
Theo Bendixson

Muito obrigado. Você salvou meu dia. :)
pratik

Eu estive como uma hora lutando contra isso até que vi seu comentário, obrigado !!
Ivmos #

Eu estava morto por dentro até encontrar este comentário.
Dog

29

Eu tive esse problema com os direitos do iCloud. Meu problema foi que esqueci de ativar o iCloud para o meu App ID no Portal de provisionamento.

Depois de ativar o iCloud para o seu ID do aplicativo, você precisará recriar os perfis de provisionamento.


1
Eu tive esse erro comigo novamente. Eu precisava adicionar meu novo dispositivo ao perfil de provisionamento de desenvolvimento e atualizar a lista no Xcode.
adjwilli

Teve o mesmo problema. O que é estranho, porque esse aplicativo foi ativado e funcionava para implantação ad-hoc antes.
raeldor

Eu tive um problema de direitos relacionado ao iCloud, pois meu aplicativo estava acessando os documentos do iCloud. Eu tive que atualizar os direitos do iCloud na seção Recursos.
user3300864

20

Mantenha seu arquivo de direitos em Destino> Configurações de compilação> Assinatura de código> Direitos de assinatura de código.

Vá para Alvo> Recursos. Alterne entre Ativar / Desativar ou Desativar / Ativar um dos recursos.

Corre.


Isso funcionou para mim. mas novamente eu tenho que selecionar o perfil de provisionamento na página de configuração de compilação.
Rinku 15/01

1
Isso funcionou para mim. Os domínios associados foram ativados para mim. Eu desliguei e o problema foi resolvido.
BigRon 6/06/2015

19

O que funcionou para mim foi excluir completamente o arquivo de direitos, da lista de grupos e das Configurações de Compilação no Projeto e no Destino. Em seguida, recriei os direitos da guia Resumo no destino e ele carregou bem sem nenhuma mensagem de erro.


Como dito acima, o valor de Direito devem ser excluídos manualmente em configurações de compilação também
petershine

1
excluir o arquivo direitos e adicioná-lo novamente funcionou para mim - eu fiz uma limpeza também
Jasper

Esta foi a minha chave aqui! Eu verifiquei as configurações de construção do projeto e do destino. Na seção Assinatura de código, há uma configuração "Direitos de assinatura de código" - eu expandi, destaquei as linhas de depuração e liberação e pressionei a tecla Delete. Isso permitiu que meu aplicativo fosse criado sem erros. No entanto, ele ainda não irá depurar - ele sai imediatamente com uma mensagem no console, eu terei que procurar.
21412 Jay Imerman

1
Isso também funcionou ao tentar executar o aplicativo HealthKit "fit" para iOS8 - havia uma sequência identificadora adicional no arquivo de autorizações. Removê-lo permitiu que o projeto executado depois de seguir outras etapas mencionadas neste tópico
Alex Pedra

Isso corrigiu meu problema com o iCloud. Parece que havia algumas configurações extras no arquivo Autorizações que não precisavam estar lá. A exclusão deles e de todos e a reconstrução da guia Geral funcionou.
AndyDunn 31/08/14

15

Apenas colocando meus 5 centavos aqui. Para mim, nenhuma das opções acima funcionou, então fui forçado a me estressar e realmente olhar para cada parte do processo com novos olhos.

Ao me apressar, esqueci que estava tentando instalar meu aplicativo em um dispositivo totalmente novo.

Portanto, meu erro foi que eu não havia atualizado meu perfil de provisionamento marcando meu novo dispositivo na seção "Dispositivos" da configuração do perfil de provisionamento no Portal de provisionamento.

Aparentemente, a não inclusão do seu dispositivo no perfil de provisionamento também gera essa mensagem de erro.


Concordo - se você não tiver o seu perfil de provisionamento correto, poderá receber este erro.
19413 Matt

12

Nenhuma das muitas respostas corrigiu o erro 0xE8008016 para mim.

Mas quando eu escolhi "Provisionamento automático de dispositivos" no Xcode 4> Organizador> Dispositivos> Perfis de provisionamento, ele finalmente funcionou.


1
Isso é demais! Trabalhou para mim também. Eu acho que foi uma combinação de todas as opções acima, já que o aplicativo foi desenvolvido originalmente com o XCode 3 e, em seguida, aumentou para 4.2, removi o arquivo Entitlements.plist do projeto, excluí a entrada de direitos de assinatura de código em Configurações / código de compilação Seção de assinatura e defina o perfil de provisionamento como automático. Esse último fez isso.
21912 Jay Imerman

Esse também era meu problema, exceto pela seleção automática do perfil de provisionamento errado e, ao selecionar manualmente o correto, o problema foi corrigido.
Abhi Beckert

1
Isso fez por mim. Não tenho certeza de como alguns perfis de provisionamento da equipe de desenvolvedores do iOS foram removidos, mas clicar em Atualizar na página Perfis de provisionamento que você mencionou para resolver esse erro.
sean808080

11

No meu caso, foi um erro estúpido. Defina incorretamente o esquema "Executar" para usar a configuração de compilação "Distribuição" em vez da configuração "Debug" ou "Release". Erro estúpido, mas demorou um pouco para depurá-lo, então vou adicionar minha resposta para melhorar a base de conhecimento dentro do estouro de pilha!


10

Exclua seus perfis de aprovisionamento, faça um 'Limpar tudo', verifique se as configurações de aprovisionamento estão corretas, faça o download novamente e tente executar novamente.


Qual versão do Xcode você está usando? Se for 4.0, houve problemas com isso. Pode ser necessário reiniciar o Xcode ou até mesmo reiniciar o seu Mac. Verifique se as configurações de provisionamento estão corretas no projeto e no destino. A definição de destino tem precedência sobre o Projeto.
W Dyson

Acho que é um problema com o dispositivo, é um iPhone 4 da Verizon e, com o mesmo perfil de provisionamento, posso implantar um aplicativo no meu iPad. Alguém mais teve esse problema com um iPhone 4 da Verizon?
Richard J. Ross III

Você está usando um perfil de provisionamento antigo? Você precisa adicionar o iPhone da Verizon como um dispositivo no Portal de provisionamento e atualizar o perfil de desenvolvimento, baixar novamente e reinstalar o novo perfil. Se isso não funcionar, você precisará fornecer mais informações.
W Dyson

Acabei de configurar o perfil de provisionamento ontem, como poderia ser antigo? A Apple ratificou meu pedido de desenvolvedor, então era novo em folha. De qualquer forma, verei como funciona quando atualizarmos para o iOS 4.3.
Richard J. Ross III

Um 'limpo' fez isso por mim. -_-
Cœur

5
  1. Abra o 'iOS Provisioning Portal' no Safari.
  2. Toque em 'Dispositivos' na barra lateral.
  3. Registre o UDID do seu dispositivo
  4. Toque em 'Perfis de provisionamento'
  5. Edite o perfil do seu aplicativo.
  6. Selecione o dispositivo que você acabou de adicionar.
  7. Faça o download do arquivo .mobileprovision.
  8. Instale-o.
  9. Construa novamente.

4

Eu tive o mesmo problema no meu aplicativo. Depois de alguns meses, esse aplicativo específico funcionou bem.

O problema era que os Recursos configurados no meu projeto do Xcode (em Destinos -> {NomeDo Projeto} -> Recursos) não eram iguais aos Recursos configurados no perfil de provisionamento (você pode verificar isso no centro de membros da Apple em Identificador -> Aplicativo Ids -> {your app ID}. No centro de membros, vi que o Game Center estava ativado e, no meu projeto, também habilitei o Game Center. Em seguida, o aplicativo foi iniciado.

Não sei como funcionou até agora. Isso ainda é um mistério :)


Agora percebi que as notificações por push não funcionam mais. Eu removi os recursos do Game Center no Xcode. O aplicativo agora é executado, mas as notificações por push não estão mais chegando. Alguém sabe o porquê?
precisa saber é o seguinte

4

Para mim, marque a opção "Gerenciar assinatura automaticamente" no Target para resolver o problema!



3

Se você não alterou nada relacionado aos certificados (não os substituiu ou os atualizou), basta fazer o Product -> Clean. Isso me ajudou várias vezes. (Xcode 6.2)


2

A atualização para o XCode 4 corrigiu o problema.


1
Não parece ser um problema específico da versão do XCode, pois recebi o erro no XCode 7.3.1. Teve que excluir o perfil de provisionamento e baixar novamente o mesmo das preferências do XCode para resolver o problema.
Ian Pinto

@IanPinto Eu concordo. A principal razão pela qual essa é a resposta aceita é porque foi isso que funcionou para mim . Não são mais informações super úteis, e eu votei na maioria das outras respostas neste post, pois todas elas contêm informações super valiosas para as pessoas que olharem para isso no futuro. O lado bom das auto-respostas no SO é que elas não são automaticamente colocadas no topo da pilha; portanto, muitas pessoas não verão essa resposta de qualquer maneira :)
Richard J. Ross III

2

Encontrei este problema hoje e estava arrancando os cabelos tentando descobrir. Como muitas pessoas aqui, funcionaria se eu removesse as opções do iCloud no meu arquivo de direitos. Quando eu depurava o aplicativo com as opções do iCloud ativadas, recebia o erro 0xe8008016. Isso foi logo após revogar e regenerar novos certificados.

Então, o que resolveu para mim foi ativar o suporte do iCloud para o perfil da equipe do Xcode gerado automaticamente. Entre na ferramenta de aprovisionamento online, acesse App IDs, clique em Xcode iOS Wildcard App ID, clique em edit, habilite o iCloud marcando a caixa de seleção e, finalmente, clicando emDone . Atualize seus perfis no Xcode e ele começará a funcionar.

Isso faz algum sentido - quando você está depurando, o padrão é o perfil da equipe e o perfil da equipe precisa ter o iCloud ativado.


1
SIM! Esse foi o meu problema e a ativação do iCloud no ID de todos os aplicativos fez o truque. Muito obrigado
Guy Moreillon

2

Aconteceu comigo quando eu estava tentando usar um perfil de provisionamento de distribuição da loja de aplicativos para teste local por engano. Quando usei o perfil de desenvolvimento adequado, ele funcionou muito bem. Talvez isso ajude alguém também.


o que posso fazer se quiser testar o perfil do aplicativo que foi carregado na App Store? Tem algum jeito de fazer isso?
bobsacameno

2

Isso funcionou para mim ...

  1. Eu apaguei o Entitlementsarquivo do target.
  2. Excluiu o aplicativo de todos os meus dispositivos
  3. Cleaned a compilação no Xcode
  4. * opcional exclua o perfil de provisionamento e adicione-o novamente

Espero que funcione para vocês também :)


excluiu o arquivo de direitos do destino, funciona para mim. Mas não se essa é a melhor maneira de fazê-lo.
YuAn Shaolin Maculelê Lai

2

Foi isso que resolveu meu problema: excluir o caminho na seção Autorizações de assinatura de código das configurações de criação de destinos.


Uma explicação 'como fazer', por favor?
Agente Zebra

@AgentZebra Clique no arquivo principal do projeto> escolha seu aplicativo em "Destinos"> Configurações de compilação> Assinatura> Direitos de assinatura de código e exclua o valor mostrado lá.
weienw

2

Meu perfil de provisionamento do desenvolvedor da Apple correspondia aos meus recursos do Xcode, mas ele ainda não foi incorporado ao meu dispositivo até que eu fiz o seguinte:

  1. Remova / exclua o arquivo de direitos do seu projeto do Xcode.

  2. Volte para a guia Recursos do Xcode

  3. Clique no botão "Corrigir problema" para fazer com que o Xcode volte a adicionar o arquivo de direitos.

Trabalhou para mim, espero que ajude alguém.


2

Aconteceu comigo no Xcode 8, foi parcialmente causado pela nova Provisioning Profileconfiguração de compilação, pois nesta versão do Xcode existem duas entradas para o perfil de provisionamento:

  • Perfil provisório
  • Perfil de provisionamento (descontinuado)

Minha culpa foi que atualizei apenas o primeiro e a entrada descontinuada ainda estava apontando para um perfil de provisionamento inválido. Alterar os dois para o mesmo valor resolveu o problema (limpar a entrada obsoleta também deve ter o mesmo efeito).


1

No meu caso, parece que o Xcode (secretamente) redefiniu o esquema. Descobri que a configuração de compilação do Archive foi definida como Release em vez da distribuição uma e, depois que a mudei para a correta, funcionou.

Eu acho que é melhor verificar os esquemas, bem como as configurações de compilação.


1

Eu tinha projeto antigo e o mesmo problema e resolvi.

1. Vá para o resumo
Vá 2. O possui grupos de chaves e exclua o objeto de grupos de chaves.

Espero que funcione para você. Saudações.


1

Estou usando o xcode 6 e encontro esse problema em um iphone 4 em particular

finalmente, vou para o dispositivo => perfil de provisionamento =>

e adicione o perfil manualmente e o problema foi corrigido.


1

Para mim, no Xcode 5.1, eu recebia The entitlements specified in your application’s Code Signing Entitlements file do not match those specified in your provisioning profile.ao tentar testar o aplicativo no meu dispositivo. O Certificado de desenvolvimento de dispositivos deve expirar em fevereiro de 2015.

O problema foi resolvido:

Selecionado Target->Capabilities , no GameCenter, aqui estava recebendo erro nos direitos do GameCenter, pois não foi adicionado ao projeto, embora a primeira versão do aplicativo tenha sido lançada pelo mesmo XCode 5.1, mas não havia erros como esse antes.

Abaixo, um botão foi dado com o título Fix Issue . Ao clicar, adicionou o direito do GameCenter e o problema foi resolvido.

Após as divisões, a tela se parece com:

insira a descrição da imagem aqui

Para mim, não havia nada a ver com certificado. O aplicativo agora é executado com sucesso no dispositivo.


1

Mais um problema em potencial que gerará essa mensagem de erro: Se você estiver usando um perfil de aprovisionamento perfeitamente válido para o aplicativo principal, mas tiver um perfil de aprovisionamento expirado ou inválido para a extensão do widget Hoje. Eu imagino que seria o mesmo para uma extensão de relógio da Apple também.

Confira todos os perfis!


1

Verifique o KeyChain Access!

No meu caso, eu estava usando o certificado de distribuição errado associado ao perfil de provisionamento.


1

O código em que eu estava trabalhando tinha um bundleid diferente no Infoplist e no Product Bundle Identifier configuração de compilação.

Encontrei isso porque notei esta mensagem no console do dispositivo na exibição de dispositivos:

MIS: entitlement 'application-identifier' has value not permitted by provisioning profile 'iOS Team Provisioning Profile: com.xxx.yyy'


0

Se você estiver tentando ativar a sincronização do iCloud, será necessário habilitar o iCloud para o AppID usado para criar o perfil de provisionamento de desenvolvimento (o que o Xcode faz automaticamente). Você também precisará habilitar isso para perfis de distribuição.

A parte complicada é que, quando você atualiza perfis no Xcode, isso não aciona uma renovação dos perfis; eles são simplesmente baixados novamente. Portanto, no seu Portal de provisionamento do iOS, em Fornecimento / desenvolvimento, você precisará verificar o perfil rotulado (Gerenciado pelo Xcode) e excluí-lo (botão Remover selecionado). Faça isso para TODOS os perfis, desenvolvimento e distribuição, que você precisa regenerar.

Agora, no Xcode no Organizer, exclua os perfis de provisionamento que você está prestes a substituir.

Agora, para obter novos. Se você desenvolver para mais de uma equipe e quiser atualizar apenas uma em particular, selecione a Equipe apropriada no painel esquerdo em EQUIPES, caso contrário, selecione Perfis de provisionamento em BIBLIOTECA e selecione Atualizar.

Por fim, remova quaisquer perfis de provisionamento antigos no dispositivo que possam entrar em conflito com os novos, pois os perfis nunca são excluídos automaticamente; perfis mais recentes são simplesmente adicionados à lista.

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.