O executável foi assinado com direitos inválidos

Estou tendo um problema com a distribuição ad-hoc no meu iPhone. Eu desenvolvi um aplicativo com o SDK 3.0. Eu tenho uma licença de desenvolvedor. Eu adicionei certificados e perfis de provisionamento em meu projeto. Então, não há problema com isso.

Mas, quando eu tento instalar o aplicativo no meu iPhone, ele compila o projeto e, em seguida, exibe o erro: "The executable was signed with invalid entitlements" na janela do Organizador. Estou esquecendo de algo? Eu atualizei meu iPhone da versão 2.2.1 e baixei o SDK mais recente da Apple.

Por favor me ajude com esse problema.

Existem instruções muito boas no ‘Programa do Portal’. Se você entrar

http://developer.apple.com/iphone

Em seguida, clique em Distribuição à esquerda e clique no

Criando e baixando um perfil de provisionamento de distribuição para distribuição ad hoc

link na parte inferior.

Aqui está o bit chave:

Para distribuição ad hoc, preencha o seguinte:

  • No menu File, selecione New File -> iPhone OS -> Code Signing -> Entitlements. Nomeie o arquivo “Entitlements.plist” e clique em “Finish”, o que cria uma cópia do arquivo de direitos padrão dentro do projeto.
  • Selecione o novo arquivo Entitlments.plist e desmarque a propriedade “get-task-allow”. Salve o arquivo Entitlements.plist. (no Xcode 4, get-task-allow é chamado de “Pode ser depurado”)
  • Selecione o Alvo e abra o inspetor de configurações do Build. Na configuração de criação ‘Code Signing Entitlements’, digite o nome do novo arquivo Entitlements.plist, incluindo a extensão. Não há necessidade de especificar um caminho, a menos que você tenha colocado o arquivo Entitlements.plist em algum lugar diferente do nível superior do projeto.
  • Clique em “Build”. (Observação: seu binário deve conter um ícone de imagem quadrada achatada, com 57×57 pixels. Esse ícone é exibido na canvas inicial do iPhone ou iPod touch.)

Esse erro também pode ocorrer se você estiver tentando criar um perfil de um aplicativo em que o dispositivo não está incluído no perfil de aprovisionamento.

Certifique-se de que seu dispositivo esteja incluído no perfil de fornecimento de desenvolvimento que você deseja usar. De alguma forma, a mensagem de erro é enganosa. Meus direitos foram realmente ok.

Descobri que “get-task-allow” precisa ser verificado para as compilações de Desenvolvimento, mas desmarcadas para as compilações de Distribuição. A maneira mais fácil de realizar isso (AFAIK) é ter dois arquivos de direitos em seu projeto: Entitlements.plist e EntitlementsDebug.plist – e referenciar o apropriado nas configurações do projeto de construção para as várias configurações em seu projeto.

As autorizações de assinatura de código não são mais necessárias para construções Ad Hoc no Xcode 4 – consulte as notas detalhadas na Nota técnica da Apple TN2250

Se uma vez você entrar nessa situação, a verificação de “get-task-allow” parece ser necessária para implantar sua compilation de debugging (!) Em seu telefone, verifique isto:

a) Verifique a configuração de construção. Não deve haver nenhuma input em “Autorizações de Assinatura de Código” para Depuração b) Remover temporariamente Entitlements.plist e construir sua versão de debugging. Se ele se queixa de uma falta de Entitlements.plist, então você provavelmente tem a mesma situação, eu tive que lutar hoje. c) Construa novamente com Entitlements.plist e habilite “get-task-allow”. Se funcionar agora, você provavelmente terá o mesmo problema:

Depois de mexer com novos perfis, não consegui implantar minha compilation de debugging no telefone. AdHoc estava bem. Eu verifiquei a) – vazio .. Hmm. Eu chequei b) – reclama. c) – trabalhado …

Afinal, eu examinei project.pbjproj em um editor e – embora a GUI tenha dito que não havia input para “Code Signing Entitlements”, na verdade, havia uma na seção Debug. Eu esvaziei e terminei.

Isso ocorre porque seu dispositivo, no qual você está executando o aplicativo, não está selecionado com seu perfil de aprovisionamento.

Então, basta passar por Certificados, Identificadores e Perfis, selecione seus iOS Provisioning Profiles clique em editar e selecione o seu dispositivo

insira a descrição da imagem aqui

Eu acabei de ter três horas emocionantes lutando com isso. Acabei de atualizar um projeto para 4.2 e, por algum motivo, ele simplesmente não funcionaria.

Eu finalmente removi o arquivo Entitlements.plist e, em seguida, criei um novo.

Arquivo> Novo arquivo> Assinatura de código> Direito

Nomeie o arquivo Entitlements.plist

Certifique-se de que esteja no grupo Recursos no xCode.

Ele não colocou o tipo BOOL get-task-allow no arquivo Entitlements.plist. Eu adicionei, verifiquei, salvei, desmarcou, salvei. Isso me fez sentir melhor.

Em seguida, removi os perfis Adhoc e Release que eu havia criado. Faça o download novamente deles no Portal de provisionamento e os retorne ao organizador xCode.

Em seguida, entrei em Configurações de compilation e verifiquei se os perfis corretos estavam atribuídos aos perfis de debugging e liberação.

Então mudei para Release / Device. Aperte o botão de compilation e funcionou.

Eu não tenho ideia do porquê.

A resposta de João está 99% correta. Descobri que (pelo menos na minha configuração), você precisa abrir o inspetor de configurações do Build para o PROJECT . As configurações de compilation do destino não contêm “Direitos de Assinatura de Código”. Talvez isso não faça diferença se você tiver apenas um alvo em seu projeto. Mas se você tiver vários destinos, precisará ir para as configurações de criação do projeto. De qualquer forma, depois de fazer o que John disse, minha configuração de distribuição ad-hoc funcionou perfeitamente.

No Xcode 5.1, se você entrar em Preferências -> Contas -> Exibir Detalhes …

Certifique-se de que o status de identidade de assinatura seja válido. Se ele diz Revogado, pressione o botão Mais e adicione a identidade de assinatura apropriada: Desenvolvimento iOS ou Distribuição iOS. O Xcode irá substituí-lo por um novo e válido.

Para mim, isso resolveu: https://coderwall.com/p/-ckobg

  1. Abra Project.xcodeproj> project.pbxproj
  2. Remova todas as linhas como estas:
    1. PROVISIONING_PROFILE = ...
    2. "PROVISIONING_PROFILE[sdk=iphoneos*]" = ...
    3. CODE_SIGN_IDENTITY = ...
    4. "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ...
  3. Definir perfis de provisionamento e assinaturas de código para o alvo novamente

pJosh, isso pode ajudar na compreensão. No meu caso, meu perfil de aprovisionamento de equipe estava expirando (o portal de provisionamento indicou que ele é gerenciado pelo XCode), bem como o perfil de teste de dispositivo do aplicativo. (Ainda não sei por quê, mas o portal tinha um botão “Renovar” ao lado do perfil da equipe, mas não fazia nada quando eu clicava nele.)

Então, eu apaguei os perfis prestes a expirar, em seguida, no XCode, vá para Organizer (Command-Shift-2), em Library / Provisioning Profiles, eu apaguei os que expiram. Em seguida, clique em “Atualizar” na parte inferior, digite minha ID da Apple e ela renovou as que estão expirando.

Por fim, no meu Target, fui para Configurações de criação, Assinatura de código e selecionei o perfil de provisionamento. Voila, agora ele constrói para o meu dispositivo.

Acabei de receber o mesmo código de erro. Parece que há coisas diferentes que causam isso e, portanto, diferentes maneiras de consertá-lo.

No meu caso, eu tinha dois dispositivos diferentes com o mesmo nome (um iPhone 4 e um iPhone 4S). Mudar o nome de um deles corrigiu esse erro completamente para mim …

Eu estava tentando adicionar suporte ao iCloud ao meu aplicativo existente, mas descobri que depois de adicionar direitos e configurar o iCloud, meu aplicativo não seria mais depurado.

Percebi que meu certificado genérico de desenvolvimento do iOS tinha um APPID diferente do aplicativo em que estava trabalhando. Então, para corrigi-lo, em vez de usar meu certificado genérico, criei um certificado de desenvolvimento específico para esse APPID.

Atualizei meu perfil de provisionamento no XCode, limpei o aplicativo, desconectei meu dispositivo, reiniciei o XCOde e conectei o dispositivo e corri, e agora funciona bem!

Eu também passei várias horas lutando com isso também. A correção é bem simples. Edite seu arquivo Entitlements.plist na raiz do diretório do seu projeto. Encontre a linha que diz get-task-allow . Por baixo, deve ser . Altere isso para .

Desculpe que isso é muito tarde, mas eu só estava olhando para esta questão e encontrei algo que funcionou para mim. Fui ao PROJECT-> Build Settings e encontrei a seção Code Signing. Além da debugging, meu perfil de distribuição que dizia Iphone Distribution: MY NAME foi selecionado. Em vez disso, selecionei o Iphone Developer: MY NAME na lista suspensa em IpodProfile (for bundle identifiers com.myName.myApp que era o Perfil de provisionamento do meu dispositivo. Espero que isso ajude!

Acabei de acontecer com um desenvolvedor da equipe que administro.

Aconteceu que seu certificado de desenvolvedor expirou e, após a renovação, deixei de adicionar seu certificado ao perfil de aprovisionamento usado por seu aplicativo. insira a descrição da imagem aqui

Eu não tinha concordado com o novo contrato licenciado atualizado da Apple.

Resumidamente: Por favor, faça o login na conta do seu desenvolvedor -> perfil -> revisão -> leia o contrato ou peça ao seu advogado para lê-lo para você -> concorde (por sua própria vontade) -> e clique novamente no perfil para verificar o status do seu perfil .

No meu cenário, a entidade de assinatura de código válido não estava aparecendo. Quando segui o procedimento acima, fiquei visível e consegui executar o aplicativo no dispositivo e / ou criar o arquivo iPA sem muita dificuldade.

Se esse problema ocorresse quando tudo parecia estar configurado corretamente, a configuração de compilation estava apontando para o perfil de aprovisionamento correto, a assinatura de código foi configurada corretamente etc.

O problema ocorreu porque eu tinha acabado de criar um novo esquema e não tinha regenerado meus CocoaPods para as novas configurações. Como você pode ver na imagem, a nova configuração ad-hoc está apontando para a configuração Pods.production , em vez de uma configuração Pods.ad-hoc (e teste respectivamente)

Demonstrando uma correspondência incorreta da configuração ad-hoc e da configuração do esquema

Consertar:

  • Defina a configuração ofensiva como None – os cocoapods não gerariam as configurações a menos que eu fizesse isso
  • Fechar XCode
  • Execute a pod install
  • Abra novamente o XCode e defina as configurações do novo esquema para as configurações recém-geradas.

É isso aí!

Verifique se seu dispositivo está incluído no perfil de provisionamento.

    Intereting Posts