J'ai une application à laquelle nous avons soumis des dizaines de versions au cours des 6 derniers mois et nous utilisons APNS. J'ai reçu l'e-mail suivant d'Apple après la mise à niveau vers Xcode 8
Cher développeur,
Nous avons découvert un ou plusieurs problèmes avec votre récente diffusion pour APP_NAME. Votre livraison a réussi, mais vous souhaiterez peut-être corriger les problèmes suivants lors de votre prochaine livraison:
Droit de notification push manquant - Votre application comprend une API pour le service de notification push d'Apple, mais le droit aps-environnement est absent de la signature de l'application. Pour résoudre ce problème, assurez-vous que votre ID d'application est activé pour la notification push dans le portail de provisioning. Ensuite, signez votre application avec un profil de provisionnement de distribution qui inclut le droit aps-environment. Cela créera la signature correcte et vous pourrez soumettre à nouveau votre application. Voir «Provisioning and Development» dans le Guide de programmation des notifications locales et push pour plus d'informations. Si votre application n'utilise pas le service Apple Push Notification, aucune action n'est requise. Vous pouvez supprimer l'API des futures soumissions pour arrêter cet avertissement. Si vous utilisez un framework tiers,
Après avoir corrigé les problèmes, vous pouvez utiliser Xcode ou Application Loader pour télécharger un nouveau fichier binaire sur iTunes Connect.
Cordialement,
L'équipe App Store
Ce qui est étrange, c'est que je suis allé sur developer.apple.com -> Certificats, identificateurs et profils et mon AppId a toujours les notifications push activées. Je ne fais rien de différent de ce que j'ai déjà fait, alors je suis curieux de savoir si la mise à jour Xcode 8 a cassé quelque chose. Des idées?
BTW: Le lien qu'ils ont mis pour le guide de programmation des notifications push était rompu dans l'e-mail, ce n'est donc pas un bon signe.
J'ai également le même problème, et je suis sûr que la notification Push est désactivée par défaut dans Xcode8. Je ne l'ai pas remarqué. Soyez prudent à ce sujet.
la source
Il y a eu un changement dans Xcode 8, où vos droits ne proviennent plus des identificateurs d'application, mais des fonctionnalités sélectionnées dans votre cible d'application. Ainsi, comme Unome (l'OP) l'a dit, vous devez vérifier que les notifications push sont activées.
Pour moi, ce n'était pas un bouton "Fix Me", mais j'avais deux fichiers de droits (un pour le développement et un pour la distribution). Activer la fonctionnalité Notifications push ajouterait la
aps-environment
clé - avec la valeurdevelopment
- au fichier des droits de développement, mais cela ne l'ajouterait pas au fichier des droits de distribution. La copie de la même clé dans la distribution a permis de supprimer l'e-mail d'avertissement lors du téléchargement sur iTunes Connect.Pour la plupart des projets, il devrait être suffisant d'activer les notifications push, ou si elle est déjà activée mais que la clé ne figure pas dans les droits, essayez de la désactiver puis de la réactiver.
la source
.entitlements
fichier pour la configuration / le schéma actuel, il l'utilise toujoursproduction
commeaps-environment
.production
.development
. Il sera modifié dans l'ipa lorsque le projet sera archivé.À partir des notes de version de Xcode :
C'est un grand changement car il était toujours assez étrange que le droit aps-environment ne nécessite pas le plist, mais beaucoup d'autres l'ont fait.
Pour ceux d'entre vous qui ne veulent pas simplement appuyer aveuglément sur "Fix Me" et qui n'ont pas actuellement de fichier de droits, il s'agit simplement d'un fichier plist qui est référencé dans les paramètres de construction de votre projet sous "Droits de signature de code"
la source
Après une journée de lutte avec Xcode 8, nous n'avons pas pu comprendre pourquoi le
aps-environment
développement n'a PAS été ajouté à nos versions de débogage. Il manquait dans la section des droits de l'application intégrée pour les tests de débogage ... même si nous avions ACTIVÉ la nouvelle capacité et le fichier des droits existait. Le problème est que le fichier de droits doit être défini pour TOUT SDK dans les paramètres de construction Xcode pour les droits de débogage.la source
Debug
clé et la définir pour leDebug
>Any SDK
un, car ce dernier est utilisé pour remplacer la valeur d'un SDK particulier.J'ai reçu le même e-mail d'Apple en utilisant XCode 7.3.1. Ce que j'ai fait pour résoudre le problème était:
la source
Si vous utilisez des frameworks Firebase et que vous n'utilisez pas de notifications push, il existe deux solutions 1. Il suffit de mettre en place le message «problème» qui est envoyé à toute votre équipe à chaque fois que vous téléchargez un binaire. L'application sera toujours acceptée en tant que soumission tant que vous n'utilisez pas réellement de notifications, vous pouvez ignorer l'avertissement. ou 2. procédez comme suit : https://stackoverflow.com/a/46802075/7529450 . Cela supprimera la notification par e-mail ennuyeuse et sera également acceptée en tant que soumission.
la source
La gestion automatique de la signature était désactivée pour moi, j'ai vérifié et fonctionne bien pour moi.
la source
L'utilisation des notifications push Xcode 9 a été activée.
J'ai essayé de désactiver / réactiver les capacités de notification push . (n'a pas fonctionné)
J'ai essayé de désactiver / réactiver la gestion automatique de la signature . (n'a pas fonctionné)
Il s'avère que j'ai dû supprimer et rajouter mes profils d'approvisionnement. ( voir ici comment faire ) Vous devrez peut-être désactiver / réactiver Gérer automatiquement la signature après les salles.
la source
Pour moi, le problème était qu'il y avait deux fichiers de droits:
Entitlements-Debug.plist
etEntitlements-Release.plist
. Et un seul d'entre eux (Debug) a besoin de paramètres.Changer la valeur multiple de Paramètres de construction> Signature> Droits de signature de code en un seul
MyAppName/MyAppName.entitlements
, puis réactiver Capabilities> Push Notifications Switcher a fait l'affaire pour moi.J'espère que ça aide.
la source
Une autre option qui a fonctionné: copier-coller la source de
AppName/Entitlements-Debug.plist
intoAppName/Entitlements-Release.plist
.la source