web-dev-qa-db-fra.com

Le point d'arrêt Xcode 8 dans le fichier ne fonctionne pas

J'ai un fichier, SignInViewController.Swift, dans mon projet Xcode qui a commencé à ne pas s'arrêter sur des points d'arrêt. J'ai un point d'arrêt dans viewDidLoad() et quelques-uns dans viewDidAppear(). J'ai plusieurs appels print() dans les deux fonctions pour m'assurer de leur exécution. Les points d'arrêt fonctionnent correctement dans d'autres fichiers, y compris AppDelegate.Swift.

Il y a eu un moment où j'ai essayé de comprendre ce qui n'allait pas. J'ai remarqué que, pendant que je construisais le projet, une erreur apparaissait, indiquant Invalid redeclaration of 'signInViewController.Swift', puis disparaissant avant la fin de la construction et l'application fonctionnant correctement, à l'exception des points d'arrêt du fichier. signInViewController.Swift est l'ancien nom du fichier d'il y a quelques mois avant que je ne le renomme en SignInViewController.Swift. Je ne l'avais jamais vu jusqu'à ce que le problème du point d'arrêt se produise et depuis que j'ai nettoyé le dossier de construction du projet et les données dérivées de Xcode, je n'ai pas pu répliquer. J'ai l'impression que le problème est pris en compte, mais je ne sais pas comment/pourquoi.

Quoi qu'il en soit, voici des choses que j'ai déjà essayées. La plupart d'entre eux ne concernent que les points d'arrêt ne fonctionnant pas en général, mais je pense que je devrais les énumérer de toute façon même si ce n'est pas le cas:

  1. Projet propre
  2. Dossier de construction propre
  3. Effacer DerivedData de Xcode
  4. S'assurer que les points d'arrêt sont activés (Cmd Y)
  5. Les paramètres de construction sont définis sur Debug
  6. Toujours afficher le désassemblage activé et désactivé
  7. Débogage activé dans Run Config

Toute aide serait très appréciée.

UPDATE 1 (toujours pas de chance):

  1. Essayé de supprimer la préférence Xcode comme suggéré par la réponse de neprocker here

UPDATE 2:

J'ai isolé le problème des points d'arrêt en seulement viewDidLoad() et viewDidAppear() ailleurs dans le fichier. 

UPDATE 3:

Isolée dans un bloc de code spécifique dans viewDidLoad(). viewDidAppear() ne fonctionne toujours pas.

18
DerFlickschter

Je ne sais pas trop comment cela a fini par résoudre le problème, mais j'ai isolé le problème d'un bloc de code dans viewDidLoad(). Ensuite, j'ai commenté ce code, puis construit et exécuté le projet. Ensuite, j'ai décommenté le code, construit et exécuté à nouveau et les points d'arrêt ont fonctionné.

6
DerFlickschter

J'ai eu le même problème avec un vieux projet. Sélectionnez Product (situé dans la barre de menus supérieure) -> Schéma -> EditScheme et j'ai résolu ce problème en cliquant sur "Debug Executable", comme indiqué dans l'image. Peut-être que cela aidera aussi quelqu'un d'autre.

 enter image description here

23
Winston

Dans mon cas, le point d'arrêt n'a pas été touché dans un seul rappel. J'ai donc remplacé "Swift Compiler", "Niveau d'optimisation" par "Aucune optimisation" dans les paramètres de construction de la cible du projet pour le débogage.

 enter image description here

17
Renetik

J'ai résolu ce problème en allant dans «Paramètres de construction» de mon projet Xcode et en réglant «Générer les symboles de débogage» sur «Oui»

6
Magnus

Ce qui m'a aidé, c’est de supprimer le fichier Breakpoints_v2.xcbkptlist qui se trouve sous le répertoire du projet (* .xcodeproj) dans le répertoire: xcuserdata/Fred.xcuserdatad/xcdebugger (remplacez "Fred" par votre nom d’utilisateur). Utilisez un programme de terminal pour y aller.

6
Fred Dijkstra

Le patch ci-dessous est un travail pour moi. Dans la barre de menus, sélectionnez Product -> Scheme -> Edit Scheme -> Select Profile -> Set Build Configuration to BUILD. S'il vous plaît examiner la capture d'écran ci-dessous.

 enter image description here

6
Renish Dadhaniya

Je traitais également le même problème dans xcode 9.

J'ai résolu le problème de plusieurs manières: 

  • Supprimer les valeurs XCode par défaut à l'aide de la commande de terminal ci-dessous

    defaults delete com.Apple.dt.Xcode.LSSharedFileList   
    defaults delete com.Apple.dt.Xcode
    
  • Effacer (ou supprimer) les DerivedData de Xcode de

    /Users/[Your Mac Username]/Library/Developer/Xcode/DerivedData
    
  • Supprimer (ou désinstaller) Xcode.app à partir d'applications, puis redémarrer l'ordinateur

  • Installer une nouvelle copie de Xcode 9

  • [ Obligatoire ] Définissez les autorisations utilisateur pour votre projet d'application, comme

    chmod -R 777 "/Users/[Your Mac Username]/Desktop/TestApp/"
    

    [où TestApp est le projet de l'application sur le bureau]

  • Ouvrez le projet et vérifiez que les paramètres de construction sont définis sur Debug

  • Assurez-vous que les points d'arrêt sont activés et définissez le point de débogage dans votre code.
4
Ali Azam

Parfois, les valeurs peuvent avoir changé dans Xcode userdefaults lui-même, Parfois, le même problème se produisait lorsque le débogueur s’arrêtait sur stacktrace

1.Delete the Xcode preference
defaults delete com.Apple.dt.Xcode

L'autre problème pourrait être le niveau d'optimisation de la cible, le changer en aucun ne s'arrêtera au débogueur

3
neprocker

Dans mon cas, il s'avère que la configuration de construction Dev n'est pas configurée correctement.

 Build configrution

La configuration Dev doit être copiée à partir de Debug et non de Release.

Vous pouvez effectuer une recherche avec Word débogage dans votre Build settings pour voir les différences.

Par exemple:

 Macros

J'espère que cela t'aides.

2
Phu Nguyen

En m'appuyant sur ce que @neprocker a dit, j'avais "Optimize for Speed" pour le débogage/la publication. J'ai simplement changé la valeur pour le débogage et j'étais prêt à partir.  Search for Optimization Level for your target under Build Settings

1
alasker