Подтвердить что ты не робот

Xcode 8 Точка останова в файле не работает

У меня есть один файл, SignInViewController.swift, в моем проекте Xcode, который нигде не начал останавливаться на контрольных точках. У меня точка останова в viewDidLoad() и несколько в viewDidAppear(). У меня есть несколько вызовов print() в обеих функциях, чтобы убедиться, что они выполняются. Точки останова отлично работают в других файлах, включая AppDelegate.swift.

Был момент, когда я пытался выяснить, что было не так, когда я заметил, что, пока я строил проект, появилась ошибка с сообщением Invalid redeclaration of 'signInViewController.swift', а затем уйти до завершения сборки, и приложение будет работать нормально, кроме для точек останова в файле. SignInViewController.swift - это старое имя файла за несколько месяцев до того, как я переименовал его в SignInViewController.swift. Я не видел этого раньше, пока не возникла проблема с точкой останова, и поскольку я очистил папку создания проекта и полученные из Xcode данные, мне не удалось выполнить репликацию. У меня есть ощущение, что это факторинговая проблема, но я не уверен, как/почему.

В любом случае, вот что я уже пробовал. Большинство из них предназначены только для контрольных точек, которые не работают вообще, но я полагаю, что я должен их перечислить, даже если это не так:

  • Очистить проект
  • Очистить папку сборки
  • Очистить Xcode DerivedData​​li >
  • Обеспечение включения точек останова (Cmd Y)
  • Настройки сборки настроены на Debug
  • Всегда показывать Демонтаж включен и отключен.
  • Отладка включена в конфигурации запуска

Любая помощь будет очень оценена.

ОБНОВЛЕНИЕ 1 (все равно не повезло):

  1. Попробовал удалить предпочтение Xcode, как предложил neprocker, ответить здесь

ОБНОВЛЕНИЕ 2:

Я выделил проблему с точкой останова только на viewDidLoad() и viewDidAppear(), где работают точки останова в другом месте файла.

ОБНОВЛЕНИЕ 3:

Изолирован на конкретный блок кода в viewDidLoad(). viewDidAppear() все еще не работает.

4b9b3361

Ответ 1

Я не уверен, как это исправить, но я выделил проблему для определенного блока кода в viewDidLoad(). Затем я прокомментировал этот код и создал и выполнил проект. Затем я раскомментировал код и построил его и снова запустил, и точки останова работали.

Ответ 2

У меня была такая же проблема со старым проектом. Выберите Product (находится в верхней строке меню) → Scheme → EditScheme, и я решил эту проблему, нажав "Debug Executable", как показано на рисунке. Может быть, это поможет кому-то еще.

enter image description here

Ответ 3

В моем случае точка останова не была достигнута только в одном обратном вызове, поэтому я изменил "Уровень оптимизации" на "Без оптимизации" в настройках целевой сборки проекта для отладки, и он начал работать в Xcode 9.3, а также в AppCode.

enter image description here

Ответ 4

Ниже патч работает для меня. В строке меню выберите " Продукт" → "Схема" → "Редактировать схему" → "Выбрать профиль" → "Установить конфигурацию сборки" для "BUILD". Пожалуйста, просмотрите скриншот ниже.

enter image description here

Ответ 5

Что помогло мне, это удалить файл Breakpoints_v2.xcbkptlist, который находится в каталоге проекта (*.xcodeproj) в каталоге: xcuserdata/Fred.xcuserdatad/xcdebugger (замените "Fred" на ваше имя пользователя). Используйте терминальную программу для перехода туда.

Ответ 6

Я решил это, перейдя в мой проект Xcode "Настройки сборки" и установив "Генерировать символы отладки" на "Да"

Ответ 7

Я также имел дело с той же проблемой в Xcode 9.

Я решил проблему следующими способами:

  • Удалить значения по умолчанию XCode, используя приведенную ниже команду терминала

    defaults delete com.apple.dt.Xcode.LSSharedFileList   
    defaults delete com.apple.dt.Xcode
    
  • Очистить (или удалить) Xcode DerivedData из

    /Users/[Your Mac Username]/Library/Developer/Xcode/DerivedData
    
  • Удалить (или удалить) Xcode.app из Приложения, а затем перезагрузить компьютер

  • Установите свежую копию Xcode 9

  • [ Обязательно ] Установите разрешение пользователя для вашего проекта приложения, как

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

    [где TestApp - проект приложения, сохраняемый на рабочем столе]

  • Откройте проект и убедитесь, что в Build Settings установлено значение Debug

  • Убедитесь, что точки останова включены и установите точку отладки в вашем коде

Ответ 8

Иногда значения могут быть изменены в самих пользовательских кодах Xcode, Время от времени у меня была аналогичная проблема с остановкой отладчика в stacktrace Несколько способов устранить этот

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

Другой проблемой может быть уровень оптимизации для цели, и ее изменение не будет остановлено на отладчике

Ответ 9

В моем случае оказывается, что конфигурация сборки Dev настроена неправильно.

Build configrution

Конфигурация Dev должна быть скопирована из Debug, а не Release.

Вы можете выполнить поиск по слову debug в Build settings чтобы увидеть различия.

Например:

Macros

Надеюсь это поможет.

Ответ 10

Основываясь на том, что сказал @neprocker, у меня была "Оптимизация для скорости" для отладки и выпуска. Просто изменил значение для отладки, и я был в порядке. Search for Optimization Level for your target under Build Settings

Ответ 11

Откройте файл viewController.swift для начального просмотра в стандартном редакторе и распечатайте что-нибудь внутри viewDidLoad и запустите приложение. Если печать работает правильно, теперь убедитесь, что вы правильно выбрали файл viewController.swift в редакторе помощника.