Cordova application qui ne prend pas utiliser les notifications push: “Manque de notification push droit”
Nous avons un Cordova en fonction de l'application pour iOS qui n'utilise pas de notifications push. Comme de Cordoue 3.5.0, chaque présentation que nous avons faite de l'app store les résultats dans un e-mail nous informant que notre app inclut des API permettant de s'inscrire auprès d'Apple Push Notification Service, mais qui n'ont pas de notification push droit.
L'application a été acceptée à chaque fois, comme nous n'avons pas utiliser les notifications push pour quoi que ce soit. Cependant, je tiens à éviter le déclenchement de cette alerte en cas d'Apple décide de changer leur politique quant à savoir si ces références API sont acceptables.
Nous n'avons pas ce problème avec les versions antérieures de Cordoue, et n'ai pas fait de travailler en Objective-C nous-mêmes. Est-ce un problème connu avec Cordova 3.5? La recherche a donné des gens avec des problèmes similaires, mais j'ai seulement trouvé des solutions pour les personnes qui veulent ajouter pousser les droits, (plutôt que de comprendre où la pression de l'API est d'être référencé et supprimer). J'ai pris un coup d'oeil à l'Cordova questions ML, mais n'a pas trouvé quelque chose là. Toutes les autres pistes que les gens sont conscients de serait appréciée!
Les Plugins utilisés:
org.apache.cordoue.console
org.apache.cordoue.appareil
org.apache.cordoue.fichier
org.apache.cordoue.inappbrowser
org.apache.cordoue.les médias
org.apache.cordoue.le réseau de l'information
org.apache.cordoue.le splashscreen
Email concernée extrait, spécifique info remplacé par [ ]:
À partir de: iTunes Store
Date: Wed, 17 Sep, 2014 à 3:49 PM
Sujet: iTunes Connect: Votre application "[nom]" (Apple ID: [id]) a une ou plusieurs questions
À: [développeur]Cher développeur,
Nous avons découvert un ou plusieurs des problèmes avec votre accouchement récent pour "[app]". Votre livraison a été un succès, mais vous pouvez corriger les problèmes suivants dans votre prochaine livraison:
Manquant de Notification Push d'un Droit de Votre application semble inclure l'API utilisée pour vous inscrire sur le service de Notification Push Apple, mais l'application de la signature de droits n'incluent pas les "aps-environnement" droit. Si votre application utilise le service de Notification Push Apple, assurez-vous que votre App ID est activé pour le Push Notification dans le Provisioning Portal, et de présenter de nouveau après la signature de votre application avec un profil d'approvisionnement de Distribution qui comprend le "aps-environnement" droit. Voir "le Développement et l'approvisionnement" dans le Local et de Notification Push Guide de Programmation pour plus d'informations. Si votre application n'utilise pas le service de Notification Push Apple, aucune action n'est requise. Vous pouvez supprimer l'API de futures présentations arrêter cet avertissement. Si vous utilisez un tiers cadre, vous devrez peut-être contacter le développeur pour plus d'informations sur la suppression de l'API.
Après avoir corrigé les problèmes, vous pouvez utiliser Xcode ou Chargeur d'Application à télécharger un nouveau fichier binaire iTunes Connect.
Ce qui concerne,
L'App Store de l'équipe
- Avez-vous été en mesure de trouver une solution à ce problème?
- j'ai également le même avertissement, bien que je n'ai pas utiliser les notifications push n'importe où.
- Mise à jour: désolé pour la lenteur de la réaction. Nous n'avons pas trouvé une solution simple, comme le code faisant référence à pousser l'enregistrement semble être inclus dans la valeur par défaut Cordova paquet (encore le cas à l'4.0). Nous n'avons pas résolu le problème, car elle n'a pas abouti à une application de rejet de encore. R21 extrait de code et l'emplacement semblent être la source du problème, je vais donc me marque que comme acceptée. Merci aussi à Krik pour fournir les appels d'API et de la documentation.
Vous devez vous connecter pour publier un commentaire.
Krik est à droite ! J'ai trouvé ce appels de l'API dans
/Classes/AppDelegate.m
certainement généré par Cordova 3.5.J'din pas essayé pour le moment, mais ces lignes peuvent certainement être commenté dans xCode pour éviter d'Apple avertissements.
COMMENT LE FAIRE VIA XCODE DE L'INTERFACE UTILISATEUR (6.1):
Tout en commentant le code fautif dans
Classes\AppDelegate.m
obtiendrez votre application approuvée, vous souhaitez continuer à bénéficier de l'avenir Cordova mises à niveau de sorte que la meilleure façon de le faire est de se tourner sur leDISABLE_PUSH_NOTIFICATIONS
symbole lors de la compilation, de sorte que ce morceau de code est laissé de côté.Je viens d'un C# arrière-plan, donc je comprends la compilation conditionnelle, mais je suis nouveau sur XCode j'ai donc dû faire un peu de recherche trouver comment faire pour définir les symboles de compilation via l'INTERFACE utilisateur.
S'avère la magie des mots sont "Préprocesseur Macro". C'est la façon dont vous pouvez accomplir cette graphiquement (à noter que ce de la manière dont c'est fait dans XCode 6.1):
Espère que cela aide d'autres personnes dans la même situation.
Avez-vous eu le Pousser Plugin installé à un certain point? On dirait que vous avez le Code quelque part dans votre trousse de demande. Je ferais un projet de recherche à l'échelle spécifique pour les appels d'API e.g:
Le code mort, les fichiers doivent être supprimés.
Heres' la documentation complète: https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/IPhoneOSClientImp.html#//apple_ref/doc/uid/TP40008194-CH103-SW2
Comme Charles Merriam souligne, les nouvelles versions de cordova-ios le rendre facile pour désactiver toucher les notifications push par le réglage de la preprocesor drapeau DISABLE_PUSH_NOTIFICATIONS. (Voir le bogue de l'histoire.)
Vous aurez besoin de
cordova platform update ios
,platform uninstall ios
etplatform install ios
pour obtenir le nouveau dans AppDelegate.m. (Peut-être il ya une meilleure façon qu'en soufflant le dossier?)J'ai trouvé un Cordova on_platform_add script hook qui va modifier le projet.pbxproj avec le drapeau pour vous lorsque vous installez la plate-forme iOS. J'avais besoin de
npm install xcode
pour obtenir le crochet script.Les deux kirk et r121 sont corrects.
Dans les versions plus récentes de Cordoue, ce code malveillant est maintenant utilement générée à l'intérieur d'un wrapper de
#ifndef DISABLE_PUSH_NOTIFICATIONS
. Tout ce que vous devez faire est d'ajouter-DISABLE_PUSH_NOTIFICATIONS
à vos drapeaux du compilateur. Définie danstarget/Build Settings/Custom Compiler Flags/(both C and C++ release)
pour ceux bâtiment à l'intérieur de XCode.Dans notre processus de fabrication, nous avons été en soufflant et la reconstruction de l'AppDelegate.m fichier beaucoup. Le hack que j'utilise est:
qui fait juste le problème.
DISABLE_PUSH_NOTIFICATIONS