Почему XCode может решить НЕ выполнять рекурсивный поиск заголовков, несмотря на то, что параметр сборки говорит, что он должен
Мой проект использует мою личную библиотеку. В "пути поиска заголовка" я включил "../WJLibrary/**". Это правильный относительный путь к моей библиотеке. Однако, согласно журналу сборки, он не выполняет рекурсивный поиск. В результате он не находит все виды файлов, которые мне нужны.
Если я начну добавлять соответствующие подкаталоги один за другим, он начнет находить файлы в этих конкретных подкаталогах. Но это не способ управлять проектом.
Для чего это стоит, у меня есть архивная старая версия проекта, и в этой версии все работает отлично. Я менял некоторые настройки внутри библиотеки. И одно из изменений должно было что-то сломать. Но из жизни я не могу понять, что могло вызвать это.
Что может быть причиной этого?
РЕДАКТИРОВАТЬ: независимо от того, что проблема, это не то, что находится в хранилище, так как обновление до старых ревизий не помогает.
2 ответа
Ответ, по-видимому, заключается в том, что рекурсивный путь поиска, содержащий.., не раскрывается. Чтобы исправить это, я создал символическую ссылку:
ln -s ../WJLibrary WJLibrary
Затем я вставил этот рекурсивный путь поиска:
WJLibrary/**
На данный момент все работает.
Если вы не видите опцию в журнале сборки, это означает, что любой отредактированный вами параметр не распространяется до окончательного значения "разрешено". Xcode использует каскадную систему уровней для своих настроек сборки. И состоит из этих уровней:
Настройки iOS по умолчанию -> Настройки проекта -> Настройки цели -> Окончательная настройка разрешения
(Не говоря уже о файлах.xcconfig, но я предполагаю, что у вас их нет)
Если вы устанавливаете свой путь на уровне проекта, тогда может быть путь целевого уровня, который переопределяет его. В окне "Настройки сборки" XCode убедитесь, что вы выбрали вкладку "Уровни", чтобы вы могли видеть все настройки каждого уровня, причем самый левый из них является окончательным разрешенным значением.
Затем есть настройки для каждой конфигурации, где вы можете установить другое значение для сборок Debug vs Release. Убедитесь, что вы устанавливаете его правильно для конфигурации, которую вы используете.