Tester les notifications push sur iOS peut être un exercice très fastidieux :

  • Configurer l’application pour qu’elle accepte les push
  • Créer les certificats de push en conséquence
  • Les uploader sur la plateforme utilisée pour gérer l’envoi des push (par exemple Accengage)
  • Trouver le token de son device et créer un segment avec
  • Configurer la push sur la plateforme
  • Et enfin, tester

Mais depuis Xcode 11.4, tout ça, c’est terminé. Il est maintenant possible, et de manière très simple, de tester les push directement sur un simulateur !

Nous allons voir comment procéder dans cet article.

Configuration du projet

Pour ce faire, nous allons commencer par créer un nouveau projet iOS simple.

Une fois le projet créé, aller dans la classe AppDelegate et ajouter l’import import UserNotifications ainsi que ce code dans la fonction application(_ application:, didFinishLaunchingWithOptions:)

UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) { (granted, error) in
     print("Permission granted : (granted)")
 }

Ainsi, au premier lancement de l’application, la pop up de demande de permission pour les notifications s’affichera :

Sélectionnez alors « Allow ».

Création de la notification push

Maintenant que le projet est configuré, passons à la création de la notification push.

Pour l’exemple, je vais créer un fichier notification.apns sur mon bureau.

Le contenu d’une notification push étant du JSON, mon fichier contiendra ceci :

{
   "aps":
   {
     "alert":"Test notification",
     "badge":1,
     "sound":"default"
   }
 }

Envoi de la notification push (méthode #1)

Nous pouvons maintenant tester l’envoi de la notification.

Pour ce faire, il va falloir récupérer l’identifiant de notre simulateur. Rendez-vous dans Xcode, Window → Devices & Simulators. Sélectionnez le simulateur sur lequel vous souhaitez tester la notification et vous trouverez alors son identifiant :

Il vous faudra également vous munir du bundle identifier de votre application.

Vous pourrez alors ouvrir un terminal et lancer cette commande (en remplaçant mon device id et mon bundle id par le votre) :

xcrun simctl push 3FDB58EA-A050-4BCE-B5C0-D422C9EADDDE com.example.Tests notification.apns

Vous devriez alors voir votre notification apparaître :

Envoi de la notification push (méthode #2)

Il existe une méthode encore plus simple pour tester les notifications push sur son simulateur.

Pour ce faire, rajoutez au début du JSON du contenu de votre push cette ligne :

"Simulator Target Bundle" : "<bundle id>"

Votre fichier notification.apns devrait aller ressembler à ceci :

{
  "Simulator Target Bundle" : "com.example.Tests",
  "aps":
  {
    "alert":"Test notification",
    "badge":1,
    "sound":"default"
  }
}

Il vous suffit alors ensuite d’effectuer un drag & drop de votre fichier notification.apns vers votre simulateur et la notification push va apparaître !

Grâce à Xcode 11.4, il est devenu beaucoup plus simple, rapide et moins contraignant de tester les notifications push sur votre application.

Attention toutefois, cette méthode ne remplacera pas les tests de push actuels mais peut faire gagner du temps lors du développement et des tests des deeplinks.

N’hésitez pas à nous contacter si vous souhaitez en savoir plus ou mettre à profit nos compétences pour réaliser votre projet.