O executável é assinado com direitos inválidos no Xcode


Respostas:


101

Lutei com esse problema por uma hora e, finalmente, encontrei uma solução. Acontece que a equipe de desenvolvimento era diferente em ProjectTarget e ProjectTests.


13
Muito obrigado! Isso só me ajudou e economizou muito tempo!
Marky de

Uau! Obrigado @Krish
Kqtr

senhor, acabei de salvar minha quinta-feira, não posso agradecer o suficiente
Samer Murad

onde posso encontrar ProjectTarget e ProjectTests?
Pablo

ah! encontrei! dias nisso e foi só essa configuração! ??
Pablo

77

Reiniciar o Xcode foi o que funcionou para mim.


15
Portanto, o Xcode adotou a correção universal da Microsoft. ;) Para registro, isso ainda é um problema e reiniciar ainda é a correção (estou usando a v7.3.1).
Eric Soyke

3
outro +1, enfrente esse problema de novo, depois google, eu pousei aqui
jayellos

Depois de horas verificando cada detalhe ... isso funcionou no XCode 8
Matej Ukmar

Alguém tem uma solução sólida para este problema !!!!, Todas essas soluções parecem alguns contornos situacionais. Por favor ajude.
Máx.

Na verdade, fazer a equipe de desenvolvimento do projeto e a equipe de desenvolvimento de teste do projeto funcionou para mim
Tahmid Rahman

35

eu descobri o problema. O aplicativo que criei em developer.apple.com não inclui inter-app-audio. O arquivo plist de direitos de projeto no Xcode tem inter-app-audio definido como YES (por padrão). Depois de alterar a configuração do meu aplicativo em developer.apple.com para habilitar o inter-app-audio. Então meu aplicativo é executado em meus dispositivos. Acho que essa é a nova regra da apple para tornar as configurações do seu aplicativo consistentes em developer.apple.com e na configuração do projeto xcode.


10
Mudei o recurso Inter-App Audio para ON e depois para OFF novamente, e desta forma o aplicativo funcionou ... WT *?
Ferran Maylinch

Uau, inacreditável. Ainda é uma correção aplicável, embora para mim fosse o recurso de grupos de aplicativos.
Keller

O mesmo aqui! É super estranho. Acho que você pode alternar qualquer recurso para corrigi-lo.
Andre Simon

Tentei tudo ainda enfrentando o mesmo problema!, Alguma sugestão
Máx.

24

Consegui corrigir isso ativando / desativando o direito "Game Center" no Xcode 5 :-)


5
OBRIGADO! Você não tem ideia de como fiquei frustrado esta manhã inteira até que tropecei em sua resposta. Definitivamente consertou para mim.
Gasper Kolenc

1
Esteja ciente de que o Xcode irá gerar um perfil de aprovisionamento para você e invalidar seu perfil de aprovisionamento de criação personalizada.
Van Du Tran

@VanDuTran não, não vai.
Nik

Isso ocorreu em um aplicativo Xamarin e também no Visual Studio para mac. Portanto, não é apenas isolado no Xcode.
Dan Beaulieu

19

Nenhuma solução funcionou para mim até que eu tenha verificado e definido o destino dos testes de aplicativo para o mesmo perfil de provisionamento do aplicativo principal. Ou se você estiver usando canto automático, certifique-se de ter a mesma equipe selecionada no alvo de testes.


Muito bom ponto, isso acontece quando você muda sua equipe no alvo principal, mas não no alvo de teste. Mudar a equipe no alvo de teste para a equipe no alvo principal resolveu o problema para mim.
dan

Obrigado!! Isso é o que finalmente consertou para mim. Os direitos eram uma pista falsa total.
Reid de

19

Para XCode 10, pode ser necessário usar o sistema de compilação legado

A alteração pode ser feita em Arquivo / Configurações do projeto. ERROR ITMS-90174: "Perfil de provisionamento ausente - os aplicativos iOS devem conter um perfil de provisionamento em um arquivo denominado embedded.mobileprovision."

Um anúncio cordova / iônico: https://github.com/apache/cordova-ios/issues/407


1
gostaria de adicionar para usuários Cordova / Ionic que você também pode precisar alterar seu projeto Xcode gerado para usar o modo legado em "Arquivo> Configurações do projeto / espaço de trabalho" e alterá-lo para o sistema de compilação legado "conforme detalhado aqui: stackoverflow.com/a / 52605878/2503520
Vyrnach

12

A solução para o Xcode mais recente :

Primeiro você deve verificar o que está habilitado em sua central de membros para seu AppID específico :

insira a descrição da imagem aqui

Então em seu destino apropriado no Xcode você tem que permitiu as mesmas capacidades: Neste caso: App Group, Game Center, In-App Purchase. Todos eles devem ser ativados em seu destino no Xcode.

insira a descrição da imagem aqui

No entanto, não importa para o modo DEBUG :

insira a descrição da imagem aqui

é muito importante para o seu modo RELEASE : insira a descrição da imagem aqui

Observe que Game Centere In-App Purchaseestão ativados por padrão no Member Center, mas estão desativados no destino do Xcode.


3
É possível remover o game center e a compra dentro do aplicativo em developer.apple.com?
Noitidart

11

Acho que o seu problema é por causa do perfil que você estava usando xCode4.6 e agora está usando xCode5.

Você precisa atualizar certificados / perfis de provisionamento via XCode> Preferências> Contas

XCode> Preferências> Contas> Clique em sua CONTA DEV> botão Ver Detalhes (canto inferior direito)> tela Iden / PPs de assinatura é exibida> clique em Atualizar.

Em seguida, escolha novamente nas configurações de construção o perfil correto e limpe e construa seu projeto.

Espero que isso ajude você.


1
Obrigado pela ajuda. eu descobri o problema. O aplicativo que criei em developer.apple.com não inclui inter-app-audio. O arquivo plist de direitos de projeto no Xcode tem inter-app-audio definido como YES (por padrão). Depois de alterar a configuração do meu aplicativo em developer.apple.com para habilitar o inter-app-audio. Então meu aplicativo é executado em meus dispositivos. Acho que essa é a nova regra da apple para tornar as configurações do seu aplicativo consistentes em developer.apple.com e na configuração do projeto xcode.
Emmy de

6

Tive que combinar os recursos do aplicativo no Xcode5 em

Capabilities -> 
In-App purchase -> ON
Game Center -> ON

com isso no perfil de provisionamento.


Também resolveu a resposta de erro "Token inválido" de APNs.
hiroshi

adicionar direitos ao centro de jogos e removê-los de volta funcionou para mim também. Não faço ideia do porquê.
Rukshan Marapana

5

xcode 6.1 (amostra HealthKit)

Eu estava recebendo este erro devido à integração do HealthKit: habilitei a compra no aplicativo, o Game Center e o Healkit solucionaram meu problema .. O mesmo habilitei no perfil de provisionamento.

insira a descrição da imagem aqui

insira a descrição da imagem aqui


Tive que fazer o mesmo para o compartilhamento de chaves. Eu também tinha uma extensão de aplicativo, tive que fazer nos dois lugares para fazer funcionar.
CaseyB

5

(Xcode 6.1)

O problema para mim estava nas minhas configurações de compilação; Eu tinha meu perfil de provisionamento definido como um perfil de produção da App Store ao tentar implantar em um dispositivo. Mudei para 'Automático' e ele resolveu meu problema. Você também pode defini-lo como seu Perfil de Provisão de Desenvolvimento.

Eu também tenho 2 certificados, então adicionei meu segundo certificado à minha provisão de desenvolvimento. Outros provavelmente não terão esse problema.


Obrigado! Mudar para 'Automático' funcionou para mim
Emastmagy MastMagy

Estranho que mudar para automático consertou, mas funcionou para mim. Eu tinha meu perfil de provisionamento definido como com.mycompany. * E estava recebendo este erro. Havia FixMe vermelho na guia Capacidades, mas depois de corrigir esses problemas, ainda recebi o erro de direitos inválidos. Em seguida, tentei alterar meu perfil de provisionamento de com.mycompany. * Para automático e resolvi o problema. Eu verifiquei duas vezes se o bundleID é com.mycompany.blabla, então parece ser algum tipo de bug do Xcode. Estou usando o Xcode 6.3.2.
Jim Range

5

Tive um problema semelhante quando atualizei para o Xcode 10, resolvi o problema indo para Arquivo> Configurações do projeto, na opção "Novo sistema de compilação" selecione "Sistema de compilação legado". Isso fez o truque para mim, espero que isso ajude alguém.


4

Simples limpar e construir parecia consertar isso para mim.


Isso foi uma solução para mim também.
Enijar

4

Se este problema me acontecer. Você pode esquecer definir equipe em teste de unidade em seu projeto alvo, tente fazer esta imagem

insira a descrição da imagem aqui


3

Eu resolvo isso excluindo tudo "PROVISIONING_PROFILE=..."e "PROVISIONING_PROFILE[sdk=iphoneos*]" = ...em project.pbxproj e reinicio o Xcode e configuro perfis de provisionamento para o destino novamente.


3

Se reiniciar o xcode não funcionar, faça um novo perfil de provisão e certifique-se de incluir seus dispositivos de teste.


Reiniciar / limpar não funcionou para mim, mas então percebi que não tinha adicionado meu novo telefone de teste ao perfil Ad Hoc que estava usando para construir. Regenerei / baixei um perfil atualizado e o erro foi embora. Nota: você pode obter um erro de "segurança" após fazer isso, o que significa que o dispositivo precisa que você autorize o aplicativo, basta tocar no aplicativo no dispositivo para que o alerta de "desenvolvedor confiável" seja ativado.
SafeFastExpressive

3

No meu caso, o dispositivo não foi adicionado. Então, tive que adicionar o dispositivo e gerar um novo perfil de provisionamento.


3

Outra coisa a verificar - certifique-se de que selecionou as entidades corretas em ambos

Alvos -> Seu alvo -> Configurações de compilação -> Assinatura

e

Projeto -> Seu projeto -> Configurações de compilação -> Entidade de assinatura de código

Recebi esta mensagem quando tinha um perfil de desenvolvedor completo selecionado em um e um Apple ID diferente (não desenvolvedor) selecionado no outro, mesmo sem direitos solicitados no aplicativo.


2

Parece ser um pequeno bug dentro do Xcode. Tente arquivá- lo mesmo assim, mesmo que haja um problema com entitlements. Se seus direitos estiverem corretos, seu upload será feito sem nenhum problema. A Apple aceita e seu aplicativo será publicado na AppStore.

Eu fiz e funcionou:)



1

Eu tive o mesmo problema no XCode 5. Isso me ajudou de qualquer maneira.

XCode > Preferences > Location tab > DerivedData

Pressione uma pequena seta para a esquerda para abrir DerivedData no Finder. Mova para a pasta de lixo do seu projeto e reconstrua.

Captura de tela


Eu acho que deve haver um raciocínio adequado sobre por que excluir dados derivados resolverá o problema.
Kavita

1

Teve algum problema. Resolver: vá para o alvo certo -> capacidades -> para mim, havia um problema com "Compra no aplicativo" e o botão para corrigi-lo. Problema corrigido de operação off-on.


1

No meu caso: preciso habilitar o áudio entre aplicativos em

Capabilities -> Inter-App Audio

Acho que, por usar a Notificação do Parse.com, ele precisa de um link para AudioToolbox.framework


1

Habilitando recursos -> Áudio entre aplicativos também corrigiu esse problema para mim. Também estou tentando enviar notificações push por meio de análise


1

As respostas aqui parecem um pouco inadequadas, então estou adicionando meus dois centavos:

A solução real é que geralmente há uma incompatibilidade entre o que está armazenado em seu perfil de provisionamento (verifique em developer.apple.com -> membros -> certificados -> o certificado que você está usando [certifique-se de verificar se dev / produção) e o que está habilitado em seu aplicativo (clique duas vezes no nome do projeto), no menu horizontal, selecione 'Capacidades' (ao lado de 'Geral').

Se você alterou recentemente um deles, certifique-se de atualizar seus certificados em XCode -> Preferências -> Contas -> Detalhes -> Atualizar ícone e reinicie o XCode.


1

No meu caso, o certificado APNS expirou, remova o certificado expirado e gere novamente o perfil de provisionamento para corrigir o problema.


1

No meu caso, tive que aceitar o Contrato de Licença de Desenvolvedor da Apple.

Faça login na conta do desenvolvedor da apple e observe a mensagem de notificação semelhante à abaixo.

"O contrato de licença do Apple Developer Program foi atualizado. Para acessar determinados recursos de associação, **** deve aceitar o contrato de licença mais recente até 28 de junho de 2016."

Anteriormente, eu não era capaz de adicionar / editar contêineres do iCloud ao ID do aplicativo, embora tenha alterado / verificado recursos, perfis de provisionamento, certificados, etc. Após concordar com o contrato, as coisas começaram a funcionar perfeitamente.

Com sorte, isso economizaria o valioso tempo de alguém.


1

Eu me deparei com exatamente o mesmo problema recentemente. Depois de ler muitos conselhos diferentes que nenhum deles funcionou para mim, finalmente fui sob o capô e encontrei a causa raiz do problema.

O arquivo de provisionamento móvel, na verdade, NÃO corresponde ao arquivo de Direitos gerado pelo Xcode.

Embora todos os arquivos sejam analisados ​​automaticamente pela ferramenta Apple, eles não estão corretos.

Se você baixar o arquivo de provisionamento do portal da Apple e abri-lo (você pode abri-lo porque é apenas um arquivo plist assinado pelo seu certificado, portanto, é legível pelo editor de texto) e compará-lo com o seu arquivo Entitlements (gerado automaticamente pelo Xcode e residente nos arquivos do projeto (portanto, é novamente um arquivo XML plist legível pelo editor de texto.) Então você pode ver a diferença.

No meu caso, era o direito ao Game Center. Ele foi exibido no portal como marcado (marcado por padrão), mas na verdade esse direito não foi incluído no arquivo de provisionamento móvel. Então foi questão de deletar do arquivo de Direitos.

Portanto, o resultado é - o conteúdo do perfil de provisionamento móvel às vezes não corresponde ao que é exibido na página de configuração do APP ID.


1

Para aqueles que têm o mesmo problema com Provisioning Profile Automatic nas configurações de compilação de destino:

Tenha muito cuidado ao editar seu arquivo de direitos de destino! Isso pode interromper a correspondência com o perfil de provisionamento gerado automaticamente e você receberá este erro.

No meu caso, tive que usar temporariamente os contêineres de produção do iCloud com compilações de depuração. Para fazer isso, eu inseri

<key>com.apple.developer.icloud-container-environment</key>
<string>Production</string>  

no arquivo de direitos e isso funcionou!
Para me lembrar que mais tarde eu teria que remover essas linhas, eu inseri simplesmente o seguinte comentário:

<key>TODO</key>
<string>The entry below must be out commented or deleted to use the iCloud development environment.</string>  

E isso quebrou a correspondência e criou o erro .


Onde está localizado o arquivo de direitos?
Noitidart

Ele está na pasta do seu projeto e denominado "yourProject.entitlements". Você pode encontrá-lo no navegador de projetos do Xcode.
Reinhard Männer

Obrigado. parece que não foi criado até eu verificar e desmarcar "inter app audio". Tenho um centro de jogos e compras de aplicativos em developer.apple.com, mas não uso; esses são os padrões. Portanto, marquei minhas capacidades no xcode como "on", mas não importa o que eu continue recebendo a mensagem "O executável foi assinado com direitos inválidos." erro. :(
Noitidart

1

Estou usando a notificação por push em meu aplicativo e, após a conclusão do desenvolvimento, tentei testar a notificação por push para a configuração da versão . Naquela época eu recebi esse erro.

Eu estava usando o Production Provisioning Profile para executar o lançamento . Consegui resolver esse erro usando o Adhoc Provisioning Profile.

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.