J'ai essayé très très dur de créer une application iOS simple et simple qui peut recevoir des notifications push. Ma seule raison de faire cela est d'établir une procédure à utiliser par certains autres membres de l'équipe, et je n'ai pas été en mesure de trouver une version à jour et fonctionnelle de ces instructions ailleurs sur le Web. Notre boutique est assez nouvelle pour les développeurs iOS, je suis personnellement totalement inexpérimenté avec les développeurs iOS et Xcode. Je suis tombé sur des dizaines de tutoriels, d'articles et de messages de problèmes d'Apple et d'ailleurs et j'ai l'impression d'être presque là ...
Voici où je dois (notez que j'utilise Xcode 4.3 et que j'essaie initialement de déployer uniquement sur iOS 5.1, et je suppose que certaines choses peuvent avoir changé récemment par rapport aux versions antérieures de Xcode, mais encore une fois, je suis nouveau pour tous ceci - et le trouvant complètement déroutant et alambiqué):
1) J'ai un profil d'approvisionnement sur mon iPhone qui a activé Push
2) Dans mon projet Xcode de test, ce profil d'approvisionnement est sélectionné comme identité de signature (dans Paramètres de construction> Signature de code)
3) J'ai mon identifiant de bundle sous Résumé et informations> Propriétés de la cible iOS personnalisée correctement définies * (je pense ??)
4) J'ai appelé registerForRemoteNotificationTypes dans le didFinishLaunchingWithOptions de mon délégué
5) J'ai didRegisterForRemoteNotificationsWithDeviceToken et didFailToRegisterForRemoteNotificationsWithError dans mon délégué, configuré pour enregistrer respectivement le jeton de l'appareil ou l'erreur
6) J'ai coché Activer les droits sous Résumé.
7) Juste en dessous, le fichier de droits sélectionné est Tinker6 (le nom de mon projet de test), qui a été généré automatiquement lorsque j'ai coché Activer les droits
8) Dans le fichier Tinker6.
Actualisé
9) En outre, j'ai essayé le tout sans fichier de droits et j'obtiens essentiellement le même résultat.
10) Le contenu de mon fichier mobileprovision inclut correctement les droits (j'ai brouillé le numéro et le domaine mais structurellement le même):
<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>
/ terminer la mise à jour
Lorsque j'essaye de l'exécuter sur mon appareil, j'obtiens l'erreur suivante dans la sortie 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}
J'ai essayé de régler get-task-allow sur NO, aps-environment sur production, les quatre combinaisons possibles, même chose.
Comment puis-je surmonter cela? Où est la documentation définitive à ce sujet?
- un autre contexte suit -
* En ce qui concerne l'identifiant du bundle, je ne sais toujours pas comment cela doit être défini par rapport aux identifiants d'application et aux identifiants de profil dans le profil d'approvisionnement. Dans le portail de provisioning sous App Ids, j'ai ceci (encore une fois, j'ai brouillé le numéro et le domaine):
Et l'ID de paquet à deux endroits est défini, j'ai ceci:
Je ne suis pas du tout sûr que ceux-ci soient corrects ou si l'un ou les deux devraient être définis sur 12355456A7.com.whatever.tinker, bien que j'aie essayé ceux-ci plus tôt dans le processus sans succès ...
Remarque je me rends compte qu'il existe de nombreux articles avec des titres similaires, mais ils semblent tous obsolètes en fonction des noms de fichiers et ainsi de suite donnés, et du fait qu'aucune des solutions ne semble utile. J'espère que le plus grand niveau de détail que j'ai donné justifiera une réponse de qualité. Je vais probablement attribuer une prime dès que possible et si vous donnez une réponse de haute qualité qui mène à une solution, je vous attribuerai la prime ainsi que la promotion de votre réponse via Twitter et mon blog. Surtout si vous publiez un très bon article "voici les 500 étapes exactes dont vous avez besoin pour faire fonctionner une application de notification push simple, y compris l'approvisionnement et tout autre article" sur votre blog ou autre.