web-dev-qa-db-fra.com

Les notifications Push de Firebase ne fonctionnent pas pour la production sur iOS

J'ai intégré Firebase Messaging SDK dans mon projet iOS, créé un certificat de notification Push pour le développement et un pour la production, téléchargé les deux clés p12 sur Firebase. Je ne reçois pas les notifications, mais uniquement pour le développement.

Le code d'enregistrement est bon, et c'est le même que j'ai utilisé pour APNS habituel, qui a bien fonctionné.

Le même comportement se produit pour 3 applications.

Quelqu'un at-il rencontré ce problème? Avez-vous des solutions ou des suggestions?

13
CristiCh

J'ai eu le même problème. Apparemment, il y a une erreur dans la documentation de Firebase. Lorsque vous exportez le certificat APN à des fins de production de votre trousseau vers le fichier .p12, vous devez sélectionner le certificat actuel, non la clé privée .

Assurez-vous de télécharger sur la console Firebase ce fichier .p12 dans les paramètres du certificat APN de Cloud Messaging.

Swift 4.0

Assurez-vous également que vous utilisez:

Messaging.messaging().setAPNSToken(deviceToken as Data, type: .prod)

à l'intérieur: 

func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {

    #if DEVELOPMENT
        //Develop
        Messaging.messaging().setAPNSToken(deviceToken as Data, type: .sandbox)
    #else
        //Production
        Messaging.messaging().setAPNSToken(deviceToken as Data, type: .prod)
    #endif

}
29
andrew_b

Tout d’abord, vérifiez le certificat que vous exportez. L’erreur typique est d’exporter une clé privée et non un service. J'ai joint une capture d'écran. J'espère que cela vous fera gagner du temps.

Certificat correct à exporter

6
Yuriy

Pour moi, ces étapes ont résolu le même problème en production:

  1. Sur le portail des développeurs Apple, accédez à Clés -> Ajouter une clé  enter image description here

  2. Téléchargez votre clé, copiez le paramètre ID clé

  3. Ouvrez la console Firebase -> Paramètres du projet -> Messagerie dans le cloud 
  4. Téléchargez votre clé .p8 que vous avez téléchargée (étape 2) ici:  enter image description here
  5. Dans la nouvelle fenêtre, collez le paramètre ID clé et votre préfixe d’application selon vos besoins
1
Diana

Je l'ai obtenu par ces étapes:

  1. Régénérez les profils à partir du portail de développement Apple
  2. Enlevez les anciens 
  3. Mettre à jour les nouveaux profils sur la console firebase 
  4. Conform AppDelegate au protocole UNUserNotificationCenterDelegate
  5. Assurez-vous que toutes les inscriptions sur APNS sont effectuées correctement (il existe de nombreux tutoriels sur la procédure à suivre).
  6. Assurez-vous d'avoir appelé configureFirebase au démarrage de l'application.
  7. Envoyer un message depuis la console Firebase

Il semble que l'étape 4 fasse la différence.

0
CristiCh