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

113

Recebi este erro com o Xcode 5 quando tento executar o aplicativo no meu dispositivo.

O executável foi assinado com autorização inválida

Funcionou bem com o Xcode 4.x. Alguém sabe como se livrar do erro?

insira a descrição da imagem aqui

Emmy
fonte
Tenho o Xcode 8.3.3 e esta resposta realmente serviu para mim: stackoverflow.com/a/40464055/4177294
Nuno MSB

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.

Krish Wadhwana
fonte
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.

RaffAl
fonte
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.

Emmy
fonte
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 :-)

Nik
fonte
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.

Matej Ukmar
fonte
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

Chen Xing
fonte
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.

Bartłomiej Semańczyk
fonte
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ê.

Manthan
fonte
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.

Nithin Haridas
fonte
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

Vinod Joshi
fonte
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.

Ian Newland
fonte
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.

Jose Rojas
fonte
4

Simples limpar e construir parecia consertar isso para mim.

Maxwell
fonte
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

Papon Smc
fonte
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.

BabyPanda
fonte
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.

Mohammad Alabid
fonte
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.

Xavi Valero
fonte
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.

CupawnTae
fonte
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:)

Bartłomiej Semańczyk
fonte
2

Isso também pode ser devido ao esquema errado de execução.

Saurabh Bisht
fonte
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

Prcela
fonte
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.

Anton Plebanovich
fonte
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

Nguyen Tran
fonte
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

jstn
fonte
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.

Jdero
fonte
1

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

BillChan
fonte
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.

Danboz
fonte
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.

Radek
fonte
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 .

Reinhard Männer
fonte
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.

Mahesh
fonte