it-roy-ru.com

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

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

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

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

  1. Чистый Проект
  2. Чистая папка сборки
  3. Очистить производные данные Xcode
  4. Убедитесь, что точки останова включены (Cmd Y)
  5. Настройки сборки установлены на Debug
  6. Всегда Показать Разборка включена и отключена
  7. Отладка включена в конфигурации запуска

Любая помощь будет очень высоко ценится.

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

  1. Попытка удаления предпочтения XCode, как предложено ответом непрокера здесь

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

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

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

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

18
DerFlickschter

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

6
DerFlickschter

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

 enter image description here

23
Winston

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

 enter image description here

17
Renetik

Я решил это, перейдя в «Настройки сборки» моего проекта XCode и установив «Создать символы отладки» на «Да».

6
Magnus

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

6
Fred Dijkstra

Ниже патч работает для меня. В строке меню выберите Product -> Scheme -> Edit Scheme -> Select Profile -> Set Build Configuration, чтобы установить BUILD. Пожалуйста, просмотрите скриншот ниже.

 enter image description here

6
Renish Dadhaniya

Я также имел дело с той же проблемой в 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

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

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

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

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

3
neprocker

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

 Build configrution

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

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

Например:

 Macros

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

2
Phu Nguyen

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

1
alasker