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?
Générez un nouveau profil d'approvisionnement, après avoir activé Push, et cela fonctionnera!
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)
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.
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.
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:
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.
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!
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.
Pour moi -> allez dans les paramètres du projet -> cible de l'application -> capacités
activer les notifications push!
Faites le bon profil. Peut-être que vous ne définissez pas le profil.
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.
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>
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.
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.
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"
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.
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.