Xcode 8 Точка останова в файле не работает
У меня есть один файл, SignInViewController.swift
, в моем проекте Xcode, который нигде не начал останавливаться на контрольных точках. У меня точка останова в viewDidLoad()
и несколько в viewDidAppear()
. У меня есть несколько вызовов print()
в обеих функциях, чтобы убедиться, что они выполняются. Точки останова отлично работают в других файлах, включая AppDelegate.swift
.
Был момент, когда я пытался выяснить, что было не так, когда я заметил, что, пока я строил проект, появилась ошибка с сообщением Invalid redeclaration of 'signInViewController.swift'
, а затем уйти до завершения сборки, и приложение будет работать нормально, кроме для точек останова в файле. SignInViewController.swift
- это старое имя файла за несколько месяцев до того, как я переименовал его в SignInViewController.swift
. Я не видел этого раньше, пока не возникла проблема с точкой останова, и поскольку я очистил папку создания проекта и полученные из Xcode данные, мне не удалось выполнить репликацию. У меня есть ощущение, что это факторинговая проблема, но я не уверен, как/почему.
В любом случае, вот что я уже пробовал. Большинство из них предназначены только для контрольных точек, которые не работают вообще, но я полагаю, что я должен их перечислить, даже если это не так:
- Очистить проект
- Очистить папку сборки
- Очистить Xcode DerivedDatali >
- Обеспечение включения точек останова (Cmd Y)
- Настройки сборки настроены на Debug
- Всегда показывать Демонтаж включен и отключен.
- Отладка включена в конфигурации запуска
Любая помощь будет очень оценена.
ОБНОВЛЕНИЕ 1 (все равно не повезло):
- Попробовал удалить предпочтение Xcode, как предложил neprocker, ответить здесь
ОБНОВЛЕНИЕ 2:
Я выделил проблему с точкой останова только на viewDidLoad()
и viewDidAppear()
, где работают точки останова в другом месте файла.
ОБНОВЛЕНИЕ 3:
Изолирован на конкретный блок кода в viewDidLoad()
. viewDidAppear()
все еще не работает.
Ответы
Ответ 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 в редакторе помощника.