Je développe actuellement une application qui reçoit des notifications push. Tout cela fonctionne à 100% via une page PHP. Il existe plusieurs types de notifications push que mon application peut recevoir. Le PHP gère cela et envoie différents paquets d'informations à mon application qui sont tous très bien reçus.
Cependant, lorsque les utilisateurs «consultent» la notification et que mon application se lance, je souhaite évidemment prendre une action différente de celle que je ferais si l'utilisateur venait de lancer l'application manuellement - et en plus de cela, des actions différentes selon le type de notification push. Cela fonctionne bien ... structurellement.
L'un de mes types de push est censé ouvrir un UIView qui établit plusieurs connexions à plusieurs serveurs différents et négocie les données dans les deux sens. Cet UIView fonctionne bien lorsque, par exemple, il est déclenché à partir du menu principal - cependant, lorsque ma notification push déclenche l'affichage de cet UIView, les connexions de socket ne fonctionnent pas comme prévu.
Maintenant, ma question ne concerne pas les sockets, mais plus encore - Comment déboguer un tel problème? D'après ce que je peux dire (je suis relativement nouveau) lorsque l'application est lancée à partir d'une notification push, il n'y a aucun moyen de lier cette exécution au débogueur / console / etc ... J'ai du mal à essayer de déboguer le code en utilisant UIAlertViews, car il existe de nombreuses lignes de communication entre les différents serveurs.
Tout conseil que vous pourriez me donner serait grandement apprécié.
la source
Pour Xcode 4, vous devez:
Plus d'informations ici dans la section "Personnaliser les exécutables dans l'éditeur de schéma".
EDIT:
Si vous manquez des journaux dans GDB, voir le commentaire de Louis Gerbarg à sa réponse.
la source
Pour XCode 10, 9, 8, 7 et 6:
Vous pouvez désormais déboguer lors du lancement à partir d'une notification, d'une URL personnalisée ou en touchant l'icône de l'application.
la source
Je ne travaille pas avec les notifications push, donc je ne connais pas le fonctionnement exact des notifications push. Cependant, j'essaierais d'imiter la réception d'une notification push en laissant la méthode principale de votre programme prétendre qu'une notification a été publiée si possible, ou en appelant l'application: didFinishLaunchingWithOptions: méthode UIApplicationDelegate à partir de la méthode applicationDidFinishLaunching:.
HTH - Salut, Daan
la source
Dans Xcode 6:
Debug
>Attach to Process
> Choisissez votre Appla source
Pour XCode 11 et 10, vous pouvez effectuer les opérations suivantes:
Choisissez Modifier le schéma.
Sélectionnez l'option Exécuter dans le panneau de gauche
Dans la partie lancement, sélectionnez attendre le lancement de l'exécutable , puis fermez la boîte de dialogue.
Générez et exécutez le projet. Vous pouvez maintenant lancer l'application en appuyant sur l'icône de l'application ou en appuyant sur le message de notification.
la source