Как отключить индексацию Xcode для определенных файлов или подпроектов?

У нас есть довольно большой проект, который содержит файлы Objective-C и C++. Все файлы C++ используются во время сборки, но только некоторые из них когда-либо открываются с помощью Xcode, и многие из них вообще никогда не должны открываться. Но Xcode добавляет в индекс всю информацию о файлах, в результате наш файл .xcindex имеет размер около 40 ГБ. Понятно, что это очень неудобно. Мой вопрос: есть ли способ отключить индексацию для какой-то части проекта? Для определенных исходных файлов, группы файлов или целых подпроектов. Я попытался установить для некоторых источников для некоторых источников значение «скомпилировано». Он отключает для них индексацию, но они также не будут компилироваться. Система сборки не знает, что с ними делать («предупреждение: нет правил для обработки файла»), хотя они перечислены на этапе сборки «Компилировать исходники». Добавление пользовательского правила для этих исходных файлов тоже не работает - команда CompileC запускается, но в ней есть "?" вместо аргумента "c++" и все флаги командной строки clang теряются. Любые предложения будут высоко ценится.


person mike    schedule 17.03.2016    source источник


Ответы (1)


Любые предложения здесь?

У меня похожая проблема с проектом CocoaPods. Существует огромное количество модулей, которые все индексируются. Это занимает века. Мой Xcode замерзает навсегда после каждого pod install. Автозаполнение тоже плохо работает. Интересно, есть ли решение для предотвращения индексации закрытых частей всех модулей?

С наилучшими пожеланиями


Обновление для CocoaPods. Наконец, я решил свою проблему, разработав утилиту ???? Регби. В текущей версии Rugby может кэшировать все зависимости удаленных модулей и удалять их цели из проекта модулей. При создании целей вне Xcode я могу отключить индексирование и использовать предварительно построенные фреймворки. Может быть, это может помочь кому-то.

person SwiftyFinch    schedule 01.12.2020