Xcode показывает много ошибок, но программа компилирует и работает отлично (как в симуляторе, так и в устройстве)
После установки класса компрессора журнала CocoaLumberjack я получаю это раздражающее поведение: Xcode жалуется на то, что есть много необъявленных идентификаторов и дает мне много ошибок (не предупреждения, а ошибки с красным значком).
Дело в том, что я могу скомпилировать и запустить приложение для iPad просто отлично, но Xcode не будет делать автозаполнение. Я попытался очистить папку сборки (Product > option + Clean), а также удалить производные данные. Я также перезагрузился безрезультатно.
Как вы можете себе представить, это боль для работы. Раньше у меня было такое поведение в предыдущей версии Xcode; это имело какое-то отношение к материалам в моем предварительно скомпилированном файле заголовков, но использование вышеприведенного решения всегда фиксировало бы это. В настоящее время я использую Xcode 4.4 (4F250).
Ошибка выборки, которую я получаю:
Semantic Error: use of undeclared identifier 'DDTTYLogger'
Вышеизложенное происходит даже с классами, которые я написал сам и которые не изменились с момента установки класса компрессора CocoaLumberjack.
Ответы
Ответ 1
Я, наконец, решил это после МНОГО попыток, используя следующее:
Удалите последний #import из моего Prefix.pch и снова создайте. Ошибки произойдут (очевидно). Верните линию и постройте снова. Ошибок не обнаружено, и через 10 секунд ошибки снова вернутся.
Повторите описанное выше, вместо последнего #import удалите последние два импорта, затем три, четыре и т.д. Я сделал это до тех пор, пока я не удалю пять импорта, и когда я их верну и жду, Xcode перестанет жаловаться.
Обратите внимание, что это не произошло со мной вообще. Я читал это решение в блоге где-то.
Странная ошибка...
Ответ 2
Откройте настройки сборки и установите "Precompile Prefix Header" в "Нет", что решило мою проблему.
Престижность: fooobar.com/questions/71227/...
Ответ 3
Я постоянно сталкивался с этими проблемами во всех последних версиях Xcode, как в Objective-C, так и в Swift.
Сегодня я заметил, что получаю ошибки в одном файле класса. Я удалил его из некоторых дополнительных объектов, в которых он находился, и ошибки, наконец, исчезли!
Я думаю, что у Xcode есть некоторые фундаментальные ошибки, связанные с обработкой нескольких целей прямо сейчас. Моя теория заключается в том, что если другая цель не построена, вы по существу увидите ошибки с этой целью. В любом случае, это помогает кому-то.
Ответ 4
Эта проблема может быть вызвана настройкой "Целевого членства" для некоторых файлов, которые не совпадают.
Пример:
Класс XYZ помещается в файл "a.swift" и используется в файле "b.swift". Но параметр "Целевое членство" в "a.swift" - это не то же самое, что параметр "Целевое членство" в b.swift.
Проверьте настройку "Целевое членство", как показано ниже:
![enter image description here]()
![enter image description here]()
Ответ 5
У меня возникли проблемы с библиотекой, установленной через cocoapods
. Переход к Build Settings
и поиск "Разрешить немодульное включение в структурные модули", а затем установить его на Yes
сделал трюк.
Ответ 6
Неплохо, если вы будете следовать этим Steps-
1-Чистый Xcode (Cmd + Shif + K).
2- Очистить производные данные (Cmd + Shift + G).
Введите этот путь (~/Library/Developer/Xcode/DerivedData/).
3- Выйдите и снова откройте Xcode.
Ответ 7
Для меня это помогло очистить проект. XCode- > Product- > Clean
Ответ 8
Я получил аналогичный тип проблемы.
Альтернативный вариант исправить это
Откройте организатор и удалите полученные данные вашего проекта или удалите все проекты на вкладке "Проекты организатора". Он отлично работает.
Ответ 9
Я просто имел то же самое в Xcode 5.1.
Я исправил его, убедившись, что между # import
не было пустых строк,
Ответ 10
Я удалил лишние пробелы и дополнительные строки из файла .pch, и он xcode перестал жаловаться
Ответ 11
Это случилось со мной, но чистка не исправила. Что было прекращено и вновь открылось XCode
. Впоследствии все ошибки phantom исчезли. Для тех, кто задается вопросом, вкладки, которые вы открываете, когда вы закрываете, по-прежнему будут открыты при повторном открытии.
Ответ 12
У меня была эта проблема недавно. Это может быть исправлено в некоторых случаях, удалив ModuleCache
папку внутри DerivedData
вместе с папкой проекта в DerivedData
. Обратите внимание, что Xcode должен быть завершен, прежде чем сделать это.
Ответ 13
Работая на Версии Xcode 10.1 (10B61), я установил настройку сборки "Увеличить совместное использование предварительно скомпилированных заголовков" на NO
. Я работал в .xcworkspace со многими проектами, использующими одни и те же фреймворки, и без заголовка моста Objective-C (то есть я сам не добавил код obj-c). Я не уверен, когда Xcode по умолчанию покончил с файлами .pch, но у меня их не было в моем проекте.
![Xcode Build Settings: Increase Sharing of Precompiled Headers = NO]()
Ответ 14
У меня это было на Xcode 10.1, когда я случайно нажал:
Cmd + Shift + U - (сборка для тестирования)
попробуйте Очистить (Cmd + Shift + K) и затем:
Cmd + Shift + R (сборка для бега)
Ответ 15
Откройте терминал и создайте симпатичную маленькую функцию, доступную через командную строку...
nano ~/.bashrc
добавить (делая необходимые замены между заостренными скобками)
cycle() {
git stash save "BACKUP"
git checkout <<SOME OTHER BRANCH>>
git branch -D $1
xcodebuild -allowProvisioningUpdates -workspace <<YOUR WORKSPACE>>.xcworkspace -scheme <<YOUR SCHEME>> -configuration Release clean
git checkout $1
}
^X
и сохраните его, следуя подсказкам, затем введите source ~/.bashrc
, чтобы сделать его видимым для текущего сеанса терминала.
Убедитесь, что ваша ветвь переведена в исходное положение, потому что мы собираемся удалить ее :)
Вызовите функцию, используя cycle <<MY BRANCH>>
(после ее запуска вы можете вызвать git stash pop
для восстановления любых изменений рабочей копии)
Надеюсь, это работает для вас! Xcode, включи свою игру!
Ответ 16
Попробуйте перезапустить XCode, у меня это сработало :)