wake-up-neo.net

Xcode 8 Haltepunkt in Datei funktioniert nicht

Ich habe eine Datei, SignInViewController.Swift, in meinem Xcode-Projekt, die aus dem Nichts angefangen hat, nicht an Haltepunkten zu stoppen. Ich habe einen Haltepunkt in viewDidLoad() und einige in viewDidAppear(). Ich habe mehrere print()-Aufrufe in beiden Funktionen, um sicherzustellen, dass sie ausgeführt werden. Haltepunkte funktionieren gut in anderen Dateien, einschließlich AppDelegate.Swift.

Es gab einen Punkt, an dem ich versuchte herauszufinden, was falsch war, wo ich bemerkte, dass beim Erstellen des Projekts ein Fehler angezeigt wurde, der Invalid redeclaration of 'signInViewController.Swift' sagte und dann verschwand, bevor der Build abgeschlossen war, und die App lief gut, abgesehen von den Haltepunkten im Datei. signInViewController.Swift ist der alte Name der Datei von Monaten, bevor ich sie in SignInViewController.Swift umbenannte. Ich habe es noch nicht gesehen, bis das Problem mit dem Haltepunkt aufgetreten ist. Nachdem ich den Build-Ordner des Projekts und die von Xcode abgeleiteten Daten gesäubert habe, konnte ich nicht replizieren. Ich habe das Gefühl, dass es das Problem berücksichtigt, aber ich bin mir nicht sicher, warum/warum.

Wie auch immer, hier sind Dinge, die ich bereits ausprobiert habe. Die meisten sind nur für Haltepunkte, die nicht generell funktionieren, aber ich denke, ich sollte sie trotzdem auflisten, auch wenn das nicht der Fall ist:

  1. Projekt reinigen
  2. Bereinigen Sie den Ordner
  3. Löschen Sie die abgeleiteten Daten von Xcode
  4. Sicherstellen, dass Haltepunkte aktiviert sind (Befehl Y)
  5. Build-Einstellungen sind auf Debug gesetzt
  6. Disassembly immer aktiviert und deaktiviert anzeigen
  7. Debugging in run config aktiviert

Jede Hilfe wäre sehr dankbar.

UPDATE 1 (immer noch kein Glück):

  1. Versucht, die Xcode-Einstellung zu löschen, wie in der Antwort von neprocker vorgeschlagen hier

UPDATE 2:

Ich habe das Problem mit dem Haltepunkt isoliert, damit die Haltepunkte viewDidLoad() und viewDidAppear() an anderer Stelle in der Datei funktionieren. 

UPDATE 3:

Zu einem bestimmten Codeblock in viewDidLoad() isoliert. viewDidAppear() funktioniert trotzdem nicht.

18
DerFlickschter

Ich bin nicht wirklich sicher, wie das Problem behoben wurde, aber ich habe das Problem auf einen bestimmten Codeblock in viewDidLoad() beschränkt. Dann habe ich diesen Code auskommentiert und das Projekt erstellt und ausgeführt. Dann entkommentierte ich den Code und baute und führte ihn erneut aus und die Haltepunkte funktionierten.

6
DerFlickschter

Ich hatte das gleiche Problem mit einem alten Projekt. Wählen Sie Product (oben in der Menüleiste) -> Schema -> EditScheme aus und ich habe dieses Problem durch Klicken auf "Debug Executable" gelöst, wie in Bild gezeigt. Vielleicht hilft das auch jemand anderem.

 enter image description here

23
Winston

In meinem Fall wurde der Haltepunkt nicht in einem einzigen Callback getroffen. Daher habe ich "Swift Compiler" "Optimization Level" in "Projektoptimierungseinstellungen für Debug" auf "Keine Optimierung" geändert. In Xcode 9.3 und AppCode funktionierte es.

 enter image description here

17
Renetik

Ich habe dieses Problem gelöst, indem ich zu den "Build-Einstellungen" meines Xcode-Projekts ging und "Generiere Debug-Symbole" auf "Ja" setzte

6
Magnus

Was mir dabei geholfen hat, war das Löschen der Datei Breakpoints_v2.xcbkptlist, die sich im Projektverzeichnis (* .xcodeproj) im Verzeichnis: xcuserdata/Fred.xcuserdatad/xcdebugger (ersetzen Sie "Fred" durch Ihren Benutzernamen). Verwenden Sie ein Terminalprogramm, um dorthin zu gelangen.

6
Fred Dijkstra

Unten stehender Patch ist Arbeit für mich. Wählen Sie in der Menüleiste Product -> Scheme -> Edit Scheme -> Select Profile -> Build Configuration auf BUILD setzen. Bitte überprüfen Sie den unten angefügten Screenshot.

 enter image description here

6

Ich habe mich auch mit dem gleichen Problem in xcode 9 beschäftigt.

Ich habe das Problem auf folgende Weise gelöst: 

  • Entfernen Sie die XCode-Standardeinstellungen

    defaults delete com.Apple.dt.Xcode.LSSharedFileList   
    defaults delete com.Apple.dt.Xcode
    
  • Löschen oder löschen Sie Xcodes DerivedData aus

    /Users/[Your Mac Username]/Library/Developer/Xcode/DerivedData
    
  • Löschen (oder deinstallieren) Sie Xcode.app aus den Anwendungen und starten Sie den PC neu

  • Installieren Sie eine neue Version von Xcode 9

  • [ Obligatorisch ] Legen Sie Benutzerrechte für Ihr App-Projekt fest

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

    [wobei TestApp das App-Projekt ist, das auf dem Desktop gespeichert ist].

  • Öffnen Sie das Projekt, und aktivieren Sie das Kontrollkästchen Build Settings (Einstellungen festlegen)

  • Stellen Sie sicher, dass Haltepunkte aktiviert sind, und legen Sie in Ihrem Code einen Debug-Punkt fest
4
Ali Azam

Manchmal haben sich die Werte in Xcode userdefaults selbst geändert, Zuweilen hatte ich ein ähnliches Problem, wenn der Debugger bei stacktrace .__ aufhielt

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

Ein anderes Problem könnte die Optimierungsstufe für das Ziel sein. Wenn Sie es in "none" ändern, wird der Debugger angehalten

3
neprocker

In meinem Fall stellt sich heraus, dass die Build-Konfiguration Dev nicht richtig konfiguriert ist.

 Build configrution

Die Konfiguration von Dev sollte von Debug kopiert werden, nicht von Release.

Sie können mit Word debug in Ihrem Build settings suchen, um die Unterschiede zu sehen.

Zum Beispiel:

 Macros

Hoffe das hilft.

2
Phu Nguyen

Öffnen Sie die Datei viewController.Swift für die erste Ansicht im Standardeditor und drucken Sie etwas in viewDidLoad. Führen Sie dann die Anwendung aus. Wenn der Druck ordnungsgemäß funktioniert, stellen Sie jetzt sicher, dass Sie die Datei viewController.Swift im Assistenteneditor korrekt ausgewählt haben.

2

Aufbauend auf dem, was @neprocker sagte, hatte ich "Optimize for Speed" sowohl für das Debugging als auch für die Veröffentlichung. Ich habe einfach den Wert für das Debuggen geändert und es war gut zu gehen.  Search for Optimization Level for your target under Build Settings

1
alasker