Como corrigir "nenhuma cadeia de direitos 'aps-environment' válida encontrada para o aplicativo" no Xcode 4.3?

153

Estou tentando muito criar um aplicativo iOS simples e simples que possa receber notificações por push. Minha única razão para fazer isso é estabelecer um procedimento para outros membros da equipe usarem e não conseguirem encontrar uma versão de trabalho atualizada dessas instruções em outras partes da Web. Nossa loja é relativamente nova para desenvolvedores iOS, eu pessoalmente sou completamente inexperiente com desenvolvedores iOS e Xcode. Eu tropecei em dezenas de tutoriais, artigos e publicações de problemas da Apple e de outros lugares e sinto que posso estar quase lá ...

Aqui é onde eu tenho que ir (note que estou usando o Xcode 4.3 e tentando inicialmente implantar apenas no iOS 5.1, e concluo que algumas coisas podem ter mudado recentemente em relação às versões anteriores do Xcode, mas, novamente, sou novo em todos isso - e considerando-o completamente confuso e complicado):

1) Eu tenho um perfil de provisionamento no meu iPhone que possui o Push ativado

2) No meu projeto Xcode de teste, selecionei esse perfil de provisionamento como a identidade de assinatura (em Configurações de compilação> Assinatura de código)

insira a descrição da imagem aqui

3) Tenho meu identificador de pacote configurável em Resumo e Informações> Propriedades personalizadas de destino do iOS definidas corretamente * (acho?)

4) Tenho registerForRemoteNotificationTypes sendo chamado no didFinishLaunchingWithOptions do meu delegado

5) Eu tenho didRegisterForRemoteNotificationsWithDeviceToken e didFailToRegisterForRemoteNotificationsWithError no meu delegado, configurado para registrar o token ou erro do dispositivo, respectivamente

6) Eu tenho Habilitar Autorizações verificadas em Resumo.

7) Logo abaixo do arquivo de direitos selecionado, é Tinker6 (o nome do meu projeto de teste), que foi gerado automaticamente quando eu marquei Habilitar direitos.

8) No arquivo Tinker6.entitlements, obtive o seguinte (que reuni está correto com base em várias postagens diferentes em toda a web, mas que não consigo encontrar nada definitivo da própria Apple):

insira a descrição da imagem aqui

Atualizada

9) Além disso, tentei a coisa toda sem um arquivo de direitos e obtive essencialmente o mesmo resultado.

10) O conteúdo do meu arquivo mobileprovision inclui direitos corretamente (eu embaralhei o número e o domínio, mas estruturalmente o mesmo):

<key>application-identifier</key>
<string>12355456A7.com.whatever.tinker</string>
<key>aps-environment</key>
<string>development</string>
<key>get-task-allow</key>
<true/>
<key>keychain-access-groups</key>
<array>
    <string>12355456A7.*</string>
</array>

/ fim de atualização

Quando tento executar isso no meu dispositivo, recebo o seguinte erro na saída do Xcode:

2012-06-11 12:45:23.762 Tinker6[13332:707] Failed to get token, error: 
Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment' 
entitlement string found for application" UserInfo=0x24a3b0 
{NSLocalizedDescription=no valid 'aps-environment' entitlement string 
found for application}

Eu tentei definir get-task-allow como NO, aps-environment para produção, todas as quatro combinações possíveis, a mesma coisa.

Como posso superar isso? Onde está a documentação definitiva sobre isso?

- mais informações a seguir -

* Quanto ao ID do pacote, ainda não estou claro como isso deve ser definido em relação aos IDs do aplicativo e do perfil no perfil de provisionamento. No portal de aprovisionamento em IDs de aplicativos, eu tenho isso (novamente, embaralhamos o número e o domínio):

insira a descrição da imagem aqui

E o ID do pacote de dois locais está definido, tenho o seguinte:

insira a descrição da imagem aqui insira a descrição da imagem aqui

Não tenho certeza de que elas estejam corretas ou se um ou ambos devem ser definidos como 12355456A7.com.whatever.tinker, embora eu tenha tentado aqueles no início do processo sem sucesso ...

Note que percebo que existem muitas postagens com títulos semelhantes, mas todas parecem desatualizadas com base nos nomes dos arquivos e outros dados fornecidos, e o fato de que nenhuma das soluções parece ser útil. Espero que o maior nível de detalhe que forneça justifique uma resposta de qualidade. Provavelmente atribuirei uma recompensa o mais rápido possível e, se você der uma resposta de alta qualidade que leve a uma solução, concederei a recompensa e promoverei sua resposta via twitter e meu blog. Especialmente se você postar de forma cruzada um artigo realmente bom "aqui estão as 500 etapas exatas que você precisa para que um aplicativo de notificação por push simples funcione, incluindo aprovisionamento e tudo o mais" no seu blog ou seja o que for.

jwl
fonte

Respostas:

94

Se você criou seu perfil de fornecimento antes de configurar o app IDenvio for, tente gerar novamente o perfil de fornecimento.

Portal de aprovisionamento do iOS -> Aprovisionamento -> Seu certificado -> EDITAR -> Faça uma edição -> Faça o download do novo aprovisionamento

Trabalhou para mim. Agora eu sou capaz de usar push.

elp
fonte
você pode ser mais explícito em relação ao que exatamente "regenera o perfil de provisionamento" implica? Esta é uma etapa do XCode, no Portal de provisionamento, onde? obrigado!
jwl
2
No portal. Basta adicionar ou remover um dispositivo e seu provisionamento será gerado. Depois disso, clique duas vezes e instale em seu chaveiro.
ELP
desculpe se estou sendo denso, mas adicione / remova-o em Dispositivos? Ou em algum lugar abaixo do perfil de provisionamento real em questão e, se sim, exatamente onde?
jwl
Adicionar ou remover dispositivos é um truque para regenerar seu provisionamento. Você precisa para regenerar um para usar notificação push, porque está ligado à ID do aplicativo e certicate impulso ..
ELP
69

Primeiro, você não precisa do arquivo de autorizações, a menos que esteja adicionando pares de chave / valor personalizados que não existem no perfil de provisionamento. Quando seu aplicativo é criado, quaisquer direitos do perfil de provisionamento serão copiados para o aplicativo.

Dado que você ainda vê uma mensagem de erro sobre direitos ausentes, só posso assumir que as opções de assinatura de código não estão corretas nas configurações de compilação.

Você precisa garantir que o perfil correto esteja selecionado para a configuração "Debug" e, para garantir, selecionou o perfil correto para o "Debug" e o nó filho chamado "Any iOS SDK":

insira a descrição da imagem aqui

Embora esta captura de tela mostre o perfil "Desenvolvedor automático" selecionado, escolha o perfil de provisionamento exato desejado na lista suspensa, apenas para fins de teste. Pode ser que o Xcode esteja escolhendo automaticamente um perfil diferente daquele que você deseja.

Além disso, certifique-se de fazer uma compilação limpa, exclua completamente o aplicativo do seu dispositivo etc. Isso é apenas para garantir que você não tenha um cotão velho por aí.

Mike Weller
fonte
Segundo o item 2 da minha postagem, ele está definido corretamente, embora tenha adicionado uma captura de tela esclarecedora para verificar. Eu também tentei remover o aplicativo completamente e deixá-lo desativado por 2 dias por recomendação que vi em algum lugar que leva um dia para que algumas informações sejam redefinidas (sim, estou entendendo o que acontece com isso !?). Mas quando você diz "Você precisa garantir que o perfil correto esteja selecionado para a configuração" Debug "", o que exatamente você quer dizer - onde eu seleciono isso?
jwl
Se você clicar na parte "Desenvolvedor do iPhone" ou o valor atual definido, verá uma lista suspensa de todos os perfis de provisionamento que o Xcode conhece. Verifique se o item correto está selecionado ou se o item "Desenvolvedor automático" está escolhendo o item correto. O menu suspenso deve mostrar tudo.
Mike Weller
E você tem certeza de que possui o perfil de provisionamento mais recente? Será que você tem uma versão antiga antes de o push ser ativado?
Mike Weller
2
Bem, acredito que sim. O que fiz para obter o novo perfil de provisionamento é, no Xcode Organizer, excluir o perfil da Biblioteca e do dispositivo e, em seguida, voltar à tela Biblioteca, clicar em Atualizar. Isso o retirou do Portal de provisionamento. Eu então adicionei isso ao dispositivo. E como mostrado acima, os ish XML mostra o conteúdo do arquivo mobileprovision os entitements corretas
jwl
3
Ach, desculpe. É preciso haver um -antes do caminho: codesign -d --entitlements - /path/to/my.app. Nesse momento, também vale a pena verificar se você está no diretório Debug-iphoneos, pois "Show In Finder" às vezes pode levá-lo ao lugar errado.
19412 Mike Weller
64

Eu enfrentei esse problema no Xcode 8. Você deve habilitar o Target—> resources—> push notification. Verifique a captura de tela.

insira a descrição da imagem aqui

DipakSonara
fonte
1
Isso me ajuda !!!! Basta clicar em um botão ... resolvendo meu problema que eu depuro por horas ... Xcode8 também.
Veck Hsiao
3
OMG obrigado! Vamos lá Apple, nos dê uma mensagem de erro mais razoável!
Ferran Maylinch 10/10
O Xcode 8 desativou as notificações por push do meu aplicativo, portanto, esta solução funcionou.
22416 Kevin
1
Obrigado, eu devo ter feito as outras etapas da instalação três vezes antes de encontrá-lo. Eu me sinto um idiota, mas também que as ferramentas são ruins para permitir que esse seja o problema.
Collin Flynn
você salvou meu dia, companheiro!
oskarko
47

A maneira mais fácil é fazer isso em suas contas com o Xcode:

Vá para o Xcode -> Preferências -> Escolha a guia Contas -> Exibir detalhes -> Clique no botão Atualizar no canto inferior esquerdo -> Concluído.

Construa novamente e deve funcionar.

ooxio
fonte
19

Ok, eu já enfrentei o problema antes. Como a notificação por push requer implementação no servidor, recriar o perfil não era uma opção. Então, encontrei esta solução SEM criar um novo perfil de provisionamento.

O Xcode não está selecionando corretamente o perfil de provisionamento correto, embora este seja selecionado corretamente.

Primeiro vá ao organizador. Na guia Dispositivos, perfil de provisionamento da lista Biblioteca, selecione o perfil pretendido que estamos tentando usar. Clique com o botão direito do mouse e depois em "Revelar perfil no Finder".

insira a descrição da imagem aqui

O perfil correto será selecionado na janela aberta do Finder. Anote o nome.

insira a descrição da imagem aqui

Agora vá para Xcode> Log Navigator. Selecione o filtro para "Todas" e "Todas as mensagens". Agora, na última fase (Build Target), procure a etapa chamada "ProcessProductPackaging" e expanda-a. Anote o nome do perfil de provisionamento. Eles NÃO devem corresponder se você estiver tendo o erro. insira a descrição da imagem aqui

Agora, na janela do Opened Finder, exclua o perfil de provisionamento não autorizado que o Xcode está usando. Agora construa novamente. O erro deve ser resolvido. Caso contrário, repita o processo para encontrar outro perfil não autorizado para removê-lo.

Espero que isto ajude.

Máx.
fonte
A culpa foi minha, mas foi corrigida usando esse método. Eu coloquei acidentalmente na caixa de informações um identificador diferente do que gerou o certificado.
JavaCoderEx
18

A resposta foi: recomeçar, faça tudo igual, mas crie um novo perfil de provisionamento e instale-o. Isso funcionou. A inspeção de todos os detalhes (direitos na provisão móvel) parece exatamente igual a tudo na minha pergunta aqui. Mas agora funciona. Apple: WAT?

Obviamente, seria óbvio fazer isso se fosse possível excluir perfis de provisionamento. Mas como isso não é possível, eu não queria confundir nossa equipe com vários perfis de teste. Ainda assim, finalmente perdi a paciência e tentei mesmo assim, e acabou funcionando. Whatevs.

jwl
fonte
Criar um novo perfil e "sujar" o antigo, como é dito nesta outra pergunta do SO, funcionou para mim: stackoverflow.com/questions/5681172/…
scurioni
Tudo o que eu precisava fazer era excluir o perfil de provisionamento existente do portal e recriá-lo. Você pode excluir perfis agora após a atualização, portanto, não é necessário criar um novo ID de aplicativo.
odyth
O novo perfil de provisionamento com o mesmo ID do aplicativo e certificado de distribuição corrigiu o problema para mim. +1 :)
Azik Abdullah
18

Exclua o antigo perfil de provisionamento do XCode no Organizer.

Em seguida, gere um novo perfil de provisionamento para o mesmo ID de pacote configurável no portal de provisionamento do iOS (depois de ativar o push).

Importe o novo perfil de provisionamento no XCode, defina-o nas configurações de criação do aplicativo.

Construir, correr, funciona.

Eu acabei de fazer isso.

Levei 10 minutos do erro ao sucesso.

user1006117
fonte
Este é o que funcionou para mim também. A edição do perfil de provisionamento antigo e o download não funcionaram para mim. Obrigado!
prageeth
Como um adendo útil, em vez de obter um novo perfil de provisionamento, pude simplesmente excluir o antigo
ritmatter
1
Eu recomendo não fazê-lo manualmente. Use github.com/fastlane/PEM .
Fatuhoku
16

XCode 6.1.1 e várias contas de desenvolvedor da apple

Outra resposta para esse mix já bastante abrangente: eu me deparei com esse problema novamente hoje e, dessa vez, devido ao fato de eu ter várias contas da apple. Precisei primeiro adicionar a segunda conta de desenvolvedor em XCode> Preferências> Contas> +

Verifique se o recurso de notificação por push está ativado

Em seguida, eu precisava ativar explicitamente a compra no aplicativo no aplicativo (não era necessário fazer isso anteriormente). XCode> (a janela do aplicativo)> Alvos> Recursos> Compra no aplicativo ativada (e nesta fase, tive a opção de escolher o certificado correto)

Observe que eu já havia adicionado o certificado ativado por envio por clique duplo no Finder.

insira a descrição da imagem aqui

kris
fonte
Estava colocando minha cabeça nisso, acho que quando mudei para o Xcode 8 beta, ele desligou meu interruptor de notificações push ou algo assim. Graças
InVINCEable
Obrigado, é por isso que tive esse problema. Meu ID do aplicativo está habilitado para compra no aplicativo, centro de jogos etc., mas no Xcode / recursos todos eles estão desativados antes, sem problemas. Desde que atualizado para o Xcode 8, estou tendo esse problema. Depois de ativar o IAP e o Game Center no Xcode, o problema se foi!
Ethan Longo
11

(Xcode 5) Bem, depois de passar uma hora, resolvi meu problema. Mesmo se você gerar novamente o arquivo de provisionamento no Xcode 5, atualize manualmente sua conta. Mudei apenas o arquivo de provisionamento na guia Organizador que não funcionou, o Xcode continuou construindo com o antigo arquivo de provisionamento.

Então vá para

Xcode> Preferências> Contas> Visualizar detalhes (selecione sua conta)

Atualize seus arquivos de provisionamento.

Ömer Faruk Almalı
fonte
7

Meu problema era simplesmente que eu estava assinando com o perfil de provisionamento de curinga gerenciado pelo Xcode.

Depois de criar um perfil específico do aplicativo (e baixá-lo, clicar duas vezes nele e garantir minhas configurações de compilação), recebi com êxito um token de dispositivo APNS.

Graham Perks
fonte
Eu tive esse problema também. O Xcode 5 é muito bom em atualizar perfis de provisionamento. Eu adicionei o serviço APNS mais tarde no desenvolvimento. Você deve garantir que o pôster acima indique que seu perfil de provisionamento é realmente o perfil exclusivo do aplicativo em que você está trabalhando e não o curinga.
Michael
@ Michael, como você se certifica disso? Tentei alterá-lo em minhas configurações de compilação (em Assinatura de código), que atualmente está definida como nenhuma. Quando eu escolho o perfil e a compilação corretos, ele aparece com um erro e volta ao perfil de provisionamento de curinga.
21714 Ian
@ian que erro você está recebendo? Tem certeza de que é um perfil válido?
Michael
Ah, resolvi, precisava baixar novamente o certificado correto para o meu Mac. Isto parece ter sido um truque. Obrigado.
21714 Ian
Fico feliz em ouvir isso. É o que eu costumo fazer quando parece que as configurações estão corretas. Refaça todos os certificados. Parece ser o problema mais vezes do que não.
Michael
6

Eu tive o mesmo problema que todos os outros e tentei todos os truques acima, nada funcionou. Até excluí e comecei de novo com uma conta de desenvolvedor diferente.

O que funcionou para mim no final foi

  1. Faça como sugerido acima e crie o ID do aplicativo
  2. Em seguida, crie um perfil de provisionamento
  3. NÃO use o perfil curinga da equipe (gerenciado pelo xcode one) na seção de desenvolvimento do provisionamento. Você precisa criar outro usando o ID do aplicativo para o qual ativou a notificação por push. Dessa forma, quando você o desenvolver, a função de notificação por push será incorporada.

Não sei se você pode habilitar isso para um aplicativo curinga, mas depois de tentar pelo menos 12 sugestões diferentes e perder alguns dias, espero que isso ajude alguém

Michael Ellams
fonte
2
Mas isso não acrescenta nada às respostas existentes, que já dão esse conselho. Obviamente, um aplicativo push precisa de seu próprio perfil; os documentos são bastante claros de que o perfil curinga não pode ser usado para qualquer aplicativo que precise de direitos especiais.
Matt
1
Fiz isso, mas meu aplicativo sempre seleciona apenas o perfil de provisionamento de curinga. Não posso forçá-lo a selecionar aquele com as notificações por push ativadas.
Ian Jamieson
3

Você mencionou um perfil de provisionamento, mas não vejo menção a um Apple Push Profile.

Para usar o Push, você deve ter um perfil de push (existem dois, um para desenvolvimento e outro para release). Depois de criá-lo, você precisará verificar se ele contém os certificados relevantes (consulte a seção EDITAR abaixo).

Este é um excelente tutorial que o guiará por todas as etapas:

http://www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12

Levaria horas, ou qualquer outra pessoa, horas e horas para escrever uma resposta detalhada e detalhada como este tutorial, por isso não tentarei reivindicar a recompensa quando este tutorial já existir.

PS Eu acredito que você não precisa mais de direitos, isso é um legado.

EDIT: Você também deve verificar se possui os perfis necessários no dispositivo - vá para as configurações e, em geral, perfis, verifique se seus perfis estão listados, especialmente o perfil push, é claro. Você também pode verificar isso na seção Organizador do XCode. No Organizer, existem duas seções que dizem Perfis de provisionamento - uma na parte superior esquerda da Biblioteca (esses são os perfis no XCode que você usa para assinar etc.). Você também verá uma seção chamada Perfis de provisionamento para o dispositivo conectado. é o perfil que está instalado no aparelho. Se você não os tiver instalado no aparelho, poderá baixá-los no site do portal de provisionamento e clique no botão Adicionar na parte inferior da janela do Organizer.

Enquanto estiver no portal de provisionamento, verifique também se o Apple Push Profile inclui os certificados: - clique em Provisioning no menu à esquerda - você verá uma lista do seu perfil, selecione EDITAR o perfil push da Apple - você verá uma seção de certificados, com uma lista de desenvolvedores ou testadores etc. que você possui em seu projeto, verifique se a caixa de seleção está marcada para eles. - você também verá uma seção de dispositivos. Verifique se o dispositivo em que você está testando foi adicionado.

Se você tiver perfis antigos no XCode ou no dispositivo, exclua-os e faça o download / atualização / instalação de todos os novos perfis no portal de provisionamento

Gruntcakes
fonte
Se os direitos são uma coisa herdada, por que estou recebendo uma mensagem reclamando de nenhum direito? Eu já segui o tutorial vinculado à carta sem sorte ... obrigado.
jwl
Além disso, adicionamos algumas informações sobre o arquivo de provisão móvel real que podem ser úteis.
jwl
isso é verdade, eu nem configurei nenhum .entitlements para enviar notificações por push com êxito. Uma coisa que me atrapalhou quando eu estava fazendo isso foi o necessidade de baixar manualmente a provisão móvel, depois criar configurações e alterar a identidade de assinatura para corresponder àquela que acabou de ser baixada; no meu caso, aparentemente o Xcode está escolhendo a provisão móvel curinga.
X Slash
Eu também recebi uma mensagem de erro sobre direitos há um tempo atrás, é um arenque vermelho, veja a resposta de Mike Wellers, foi o que fiz no meu caso.
Gruntcakes
Atualizei a resposta com mais algumas coisas para você verificar.
Gruntcakes
2

Eu me deparei com esse mesmo problema. Para mim, o problema era que o nome do meu produto ($ TARGET_NAME) não estava em maiúsculas da mesma forma que o certificado fornecido pela apple. Por exemplo, eu tinha com.companyid.APNDemo, enquanto o certificado da Apple estava usando com.companyid.apndemo.

Mudei meu alvo para minúsculo e funcionou. Nota: A dica para mim foi que a configuração de assinatura de código nas Configurações de compilação foi definida como meu certificado de desenvolvedor padrão; não o perfil de provisionamento APNTest.

David Carrico
fonte
1

Muitas das respostas acima estão corretas. No entanto, parece haver mais de um erro possível ao lidar com isso.

O que eu tinha era um problema de letras maiúsculas no meu App ID. Por algum motivo, meu ID do aplicativo não estava em maiúsculas, mas meu aplicativo estava. Depois de recriar o ID do aplicativo com letras maiúsculas corretas, tudo funcionou sem problemas. Espero que isto ajude. Frustrante como o inferno.

PS, se ainda não funcionar, tente editar o campo Identidade de assinatura de código manualmente com "editar". Altere a segunda linha com o nome do nome correto do perfil de fornecimento.

matrinox
fonte
1

Levei horas para resolvê-lo. Como alguém usa scripts personalizados para assinar e empacotar enquanto outros usam o próprio xcode, há apenas uma maneira de verificar o que terminou no seu aplicativo. Despejar seus direitos com

codesign --display --entitlements :- path/to/MyApp.app

e verifique aps-environmente application-identifier.

dwery
fonte
Eu tenho enfrentado o mesmo problema. Só queria perguntar, o caminho para o aplicativo é para o aplicativo instalado no simulador?
Ajeet
não, é o caminho do aplicativo compilado para o dispositivo real, no diretório de construção do xcode.
dwery
1

Este erro pode ocorrer quando seu certificado expirar.

A solução é renovar o certificado e assinar o aplicativo com ele.

vahotm
fonte
1

Você precisa ter em seus perfis de provisionamento ( https://developer.apple.com/account/ios/profile/ ) um perfil de distribuição do iOS.

Ao fazer upload do xCode para a App Store, verifique se você tem o ambiente aps nas autorizações. Caso contrário, faça o download deles em Visualizar contas -> Exibir detalhes -> Baixar tudo.

Nadav B
fonte
1

Eu tive uma questão semelhante. Estive saltando entre o XCode 7 e 8 por vários motivos. Depois de usar o 8 para construir, você precisará usar o 8. Simplesmente usei o Xcode 8 e apliquei algumas das alterações sugeridas acima e funcionou.

Brent Brookler
fonte
1

recriar arquivos provisórios corrigiu todos os meus problemas.

Faris Muhammed
fonte
0

Parece haver algo peculiar com os direitos 'automáticos' no Xcode 4.6.

Há um arquivo Entitlement.plist para cada SDK em:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/Entitlements.plist

Uma solução alternativa que encontrei foi editar este arquivo e adicionar a chave sneaky aps-environment manualmente da seguinte maneira:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>application-identifier</key>
    <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
    <key>aps-environment</key>
    <string>development</string>
    <key>keychain-access-groups</key>
    <array>
        <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
    </array>
</dict>
</plist>

Em seguida, o Xcode está gerando o arquivo Xcent correto, que contém a chave aps-environment em:

/Users/mySelf/Library/Developer/Xcode/DerivedData/myApp-buauvgusocvjyjcwdtpewdzycfmc/Build/Intermediates/myApp.build/Debug-iphoneos/myApp.build/myApp.xcent

Você pode localizar onde seu arquivo Xcent é criado usando o Log Navigator do Xcode,
procure "ProcessProductPackaging".

Infelizmente, essa é a única maneira que encontrei que resolve o problema .
(e, finalmente, capaz de obter corretamente o token push agora)

Basta saber se outra solução mais elegante está disponível.
Consulte minha pergunta SO para obter mais detalhes sobre isso:
o direito automático do Xcode 4.6 não está funcionando - "nenhum ambiente aps válido"

AmitP
fonte
0

Antes de excluir e regenerar AppIDs / Profiles, verifique se a Biblioteca e o Dispositivo têm os mesmos perfis (e corretos) instalados.

Comecei a ver esse erro depois de migrar para um novo computador. O envio estava funcionando corretamente antes da migração.

O problema era (duh) que eu não havia importado os perfis para a biblioteca Xcode na nova máquina (em Organizador / Dispositivos, em Biblioteca-> Perfis de provisionamento).

A parte confusa foi que o DISPOSITIVO já tinha os perfis certos e eles apareceram conforme o esperado nas configurações de compilação, então tudo parecia correto lá, mas a BIBLIOTECA XCode não os tinha, por isso estava assinando o aplicativo com ... ?? ?

Rodin Lyasoff
fonte
0

Foi isso que o corrigiu para mim. (Eu já havia tentado ativar / desativar os recursos, recriar o perfil de provisionamento etc.).

Na guia Configurações de compilação , em Autorizações de assinatura de código , meu arquivo .entitlements não estava vinculado a todas as seções. Depois de adicioná-lo à seção Qualquer SDK , o erro foi resolvido.

insira a descrição da imagem aqui

mogile_oli
fonte
0

Tentei todas as respostas listadas aqui, mas ninguém resolveu meu problema. No meu caso, esse erro é devido ao meu erro bobo na criação do Appid. Usei o Wildcard App ID em vez de usar o Explicit App ID causou o problema

Se você deseja que um aplicativo receba notificações remotas (notificação por push), precisará usar um ID de aplicativo explícito , como com.tutsplus.push , em vez de com.tutsplus. *

Por favor, encontre o ScreenShot, insira a descrição da imagem aqui

arunjos007
fonte