Ответ 1
Похоже на включение: Разрешить немодульное включение в модульные модули решить эту проблему для меня.
После обновления с помощью Xcode 6.3 я нашел что-то странное с моими проектами.
Ниже кодов возникает проблема синтаксического разбора, в которой говорится: "Не удалось построить модуль" Повестка дня "," Повестка дня "- это моя собственная встроенная инфраструктура для ios8:
@import MyEmbededFramework;
Маркер ошибки выглядит следующим образом:
Проблемы возникают при индексировании, а не в создании. Полное здание может быть успешно выполнено без каких-либо ошибок или предупреждений. Я могу создавать, архивировать, запускать на устройстве, развертывать, отправлять в App Store.
Однако маркер ошибки появляется, когда я редактирую классы, принадлежащие расширению. Расширение (виджет) явно связано со встроенной инфраструктурой. (Я знаю, что мне не нужно это делать, когда я использую оператор @import.)
В этом состоянии я не мог получить никакого действительного помощника контента, очень раздражающего.
После замены оператора import старым стилем проблема исчезла:
#import <AgendaFramework/AgendaFramework.h>
У меня есть несколько других проектов, которые имеют очень похожую топологию с проектом, который вызывает эту проблему, но они в порядке. Эта проблема вызывает только один проект. Я сравнивал все настройки детализации, я не мог найти никакой подсказки.
Я пробовал:
Любые подсказки приветствуются. Спасибо!
Похоже на включение: Разрешить немодульное включение в модульные модули решить эту проблему для меня.
Иногда эту проблему можно решить с помощью добавления фреймворка в ту же папку, что и файл .xcodeproj, никаких подпапок или чего-либо еще.
Кредиты Jonny, которые указывают на это как комментарий в вопросе.
Привет, это связано с тем, что файл, который вы публикуете в заголовке фреймворка, также должен быть публичным.
Решение, которое сработало для меня: усердие в ориентации файла заголовка рамки на импорт стиля системы... например #import <CoreXLib/CoreThreads.h>
история:
В моем случае мои фреймворки, которые я построил, пришли из комбинации нескольких базовых кодов, поскольку стало очевидным, что я могу повторно использовать некоторые общие шаблоны проектирования в этом облегчении кода через Framework и хрупкие пути к проекту Xcode.
Когда я построил свою инфраструктуру CoreXLib, я преобразовал ее в Cocoa Framework, типичную для Xcode. Я изменил свой импорт:
#import "CoreTypeAliases.h" // project local style
к
#import <CoreXLib/CoreTypeAliases.h> // system or framework style
соответственно. Несколько проектов, которые использовали CoreXLib.framework, который включал публичные заголовки в lego-папке, работали... поэтому я подумал, что мне хорошо...
К сожалению, некоторые заголовки, которые были общедоступными, полностью не обновлялись. Классы в рамках построены просто отлично в местном стиле. Все проекты, использующие его, работали до этого момента, а затем я столкнулся с тем, что не... и ошибка, отмеченная @jeeeyul
Итак, после поиска этой темы и нахождения решения @kwz, и не имея в ней ничего, я решил отполировать код, пока я пытался понять эту проблему. В полировке я обнаружил, что некоторые из #imports
не изменились, как они должны быть в поиске Xcode и заменены. Время для ручных задержек...
После исправления всех этих ссылок во всех моих заголовочных файлах CoreXLib (а не только для публичных, для самозащиты) я вернулся к проблеме... Я взял вновь обработанную CoreXLib.framework на ошибочный проект, вложил его... и проблема исчезла! Я проверил Allow Non-modular Includes...
как в рамках проекта, так и в проекте, который связал структуру, и оба были "Нет". Отбрасывание как "Да", так и "Нет" не имело никакого значения в нескольких тестах. Единственным другим изменением были модификации #import "..."
to #import <CoreXLib/...>
.
Поэтому иногда полировка яблока 🍎 сбивает ошибки...
Сегодня я решил эту проблему этими шагами:
Попытайтесь создать свой проект, проблема может исчезнуть.
вы можете попробовать это, он работает для меня. удалите DerivedData из вашего проекта. шаг за шагом
Отключите модуль в настройках сборки. Это может работать