web-dev-qa-db-fra.com

Obtenir une erreur de la notification push

Dans mon application, j'ai besoin de notifications Push. J'implémente toutes les instructions des documents de notifications Push. Mais j'ai reçu une erreur de la notification push:

Fail To Register For Remote Notifications With Error:
  Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment'
  entitlement string found for application" UserInfo=0x2340a0
  {NSLocalizedDescription=no valid 'aps-environment' entitlement string
  found for application}

Qu'est ce que je fais mal?

47
arunkumar.p

Générez un nouveau profil d'approvisionnement, après avoir activé Push, et cela fonctionnera!

44
nithinreddy

J'utilise Xcode 6.1.1

Vous n'avez rien à supprimer ni à recréer. Il vous suffit de faire mettre à jour Xcode vos certificats actifs (y compris le nouveau certificat de notification Push).

Allez simplement dans Xcode> Préférences> Comptes> choisissez votre compte> choisissez votre équipe> Afficher les détails

Cliquez sur le bouton d'actualisation dans le coin inférieur gauche. (Vérifiez également la signature de votre code dans les paramètres de génération)

enter image description here

25
codepushr

J'ai eu le même problème,

Je l'ai résolu en m'assurant dans Paramètres intégrés, Identité de signature de code pour débogage est réglé sur Profil de provisioning

dans lequel vous avez activé les notifications Push.

19
Almas Adilbek

Tout d'abord, vous devez vous assurer que vous utilisez un ID d'application sans caractère générique. Ensuite, vous devez activer cette application pour les notifications Push pour le développement.

Vérifiez ce tutoriel , par exemple.

Même après avoir activé votre identifiant d'application pour Push, cela peut prendre quelques heures pour qu'il fonctionne.

18
uvesten

Cela me rendait fou. J'ai tout recoupé mais obtenais toujours la même erreur. J'ai également essayé toutes les autres solutions proposées sur le Web. Cependant, cela a fait l'affaire pour moi. Je crée un fichier .mobileprovision avant d'activer APNS. Ce fut la vraie erreur. Résolution de ce problème:

  1. Créer un ID d'application
  2. Activer APNS
  3. Ensuite, créez un fichier de provision

Si vous avez créé un profil d'approvisionnement plus tôt et que vous avez activé APNS, vous devez supprimer le fichier d'approvisionnement de partout dans votre système (XCode, trousseau, iTuneConnect). Et puis créez à nouveau le fichier d'approvisionnement.

8
Sourabh Bhardwaj

Je viens de traiter cette question. Bien qu'il se passe probablement beaucoup de choses, voici ce que j'ai appris.

Lorsque vous apportez des modifications à un ID d'application, telles que l'activation des notifications Push, vous devez créer un nouveau profil d'approvisionnement. Je dois avoir créé mon ID d'application, créé un profil d'approvisionnement à l'aide de celui-ci, puis activé les notifications sur l'ID d'application.

Une fois que j'ai supprimé le profil d'approvisionnement du portail et de l'appareil, j'en ai créé un nouveau en utilisant l'ID d'application modifié. Téléchargé, jeté sur mon appareil, wham bam merci madame ça a marché. J'espère que cela aidera les gens à l'avenir!

2
NicholasTGD

Cela vient de le résoudre pour moi, donc je vais partager. Si vous mettez à jour l'ID de votre application, vous devez alors supprimer le profil de votre appareil, xcode et developer.Apple.com. Créez ensuite un nouveau profil d'approvisionnement correspondant qui est mis à jour avec les nouveaux paramètres d'ID d'application. Il est préférable de le nommer quelque chose de légèrement différent afin que vous sachiez que vous sélectionnez le bon.

2
Isaiah Turner

Pour moi -> allez dans les paramètres du projet -> cible de l'application -> capacités

activer les notifications push!

1
Raegtime

enter image description here

Faites le bon profil. Peut-être que vous ne définissez pas le profil.

1
jxdwinter

La première chose que vous devez exécuter applcaiton dans l'appareil.

Cela se produira dans xcode 3.2.6. Parce que quand vous obtenez tout parfait. Mais votre application ne s'enregistre pas sur votre iPhone, iPad ou iPod. Vous devez générer un fichier Entitlement.plst.

  • Étape: Sélectionnez d'abord votre projet dans xcode, créez un fichier. Sélectionnez le fichier de codesign nommé it droit.plist (nom par défaut).
  • Mettez-le sur le dossier de ressources.
  • Cliquez avec le bouton droit sur ouvrir en tant qu'éditeur xml.
  • Ouvrez ensuite votre fichier de provision comme your_apllicationName.mobileprovision (que vous avez créé pour le serveur Apns) en mode textedit.

Copiez maintenant des lignes comme celle-ci de votre profil d'approvisionnement dans votre fichier de droits:

<key>application-identifier</key>
<string>xyz.com.company_name.app_name</string>
  <key>aps-environment</key>        
            <string>development</string>
    <key>get-task-allow</key>   
<true/>
    <key>keychain-access-groups</key>   
<array>
        <string>xyx.*</string>      
    </array>
  • Enregistrez le fichier droit.plist.
  • Exécutez votre applcation que vous notifierez par le serveur Apns.
1
Rajesh

J'ai eu la même erreur dans XCode 4.6.1, cela a fonctionné pour moi, puis j'ai supprimé les profils APNS précédents du Mac et téléchargé à nouveau le profil de mise en service APNS du centre des membres. Dans les paramètres de génération en mode cible, l'identité de signature de code ne doit être en mode débogage que lorsque iPhone Developer for Release est défini sur zéro ou supprime le développeur ou la distribution.

0
balajiaj

ok, un peu gênant, mais parfois vous passez des heures sur les bugs les plus idiots -

ainsi, j'exécute l'application sur le mode DÉBOGAGE au lieu de AD-HOC.

pour changer cela, faites:

schéma -> Modifier le schéma ...

sélectionnez Exécuter sur la gauche et passez à Ad-Hoc dist sous Build Configuration.

* bien sûr, vous devez avoir le profil de configuration ad hoc approprié sous build-setting\signature de code ainsi que le certificat APNS approprié qui y sont attachés lorsque vous créez le profil de configuration.

** une fois que vous l'exécutez, il s'écrase car il n'est pas en mode DEBUG, mais vous pouvez toujours vous connecter depuis l'appareil.

enter image description here

0
Aviram Net

Assurez-vous simplement que vous utilisez le certificat de provision spécifique

rendez-vous sur: https://developer.Apple.com/ios/manage/provisioningprofiles/index.action vérifiez l'état de votre certificat d'approvisionnement, dans le pire des cas, créez-en un nouveau, téléchargez-le et assignez-le à votre projet à nouveau.

Assurez-vous du type de disposition que vous utilisez, de "développement" ou de "distribution"

0
T.Baba

Moi aussi. Voici comment j'ai résolu.

1) Profils de provisionnement supprimés à ~/Library/MobileDevice/Provisioning Profiles

2) Profils supprimés du compte développeur

3) Création et installation de nouveaux profils

Notez que régénération des profils n'a pas résolu.

0
Seryozha

Si vous gérez plusieurs applications push sur un serveur, tenez compte des faits suivants.

Vous devez traiter un fichier séparéclé privée en tant que p12 pour préparer le fichier pem et cette clé privée est générée dans l'application de trousseau lorsque vous créez un . certSigningRequest fichier. Ainsi, ce CSR peut être réutilisé pour la même application à l'expiration mais un distinct est nécessaire pour toute autre application.

0
zeeawan