Отключение некоторых файлов в проекте XCode от компиляции

Я начал новый проект в XCode с дублирования существующей папки, потому что у моего нового приложения будет много общих функций со старой.

Проблема в том, что новое приложение не будет использовать структуру, которую я использовал в старом приложении. Когда я удалял фреймворк, конечно, все файлы, включая этот фреймворк, вызывали ошибки.

В основном я хочу отключить все проверки синтаксиса, проверки зависимостей и т.д. Для многих файлов. Я хочу, чтобы Xcode игнорировал эти файлы, хотя они находятся в дереве проекта. Позже, когда я пересмотрю их, я снова включу их вручную. Таким образом, я могу скомпилировать и протестировать свои небольшие изменения на наличие ошибок, не исправляя все ошибки, которые они вызывают, в "не исправленных" файлах, которые я буду исправлять в будущем.

Я мог бы удалить их из дерева проекта, а затем добавить их один за другим, когда моя работа будет выполнена, но я не хочу этого делать, потому что моё дерево проекта может испортиться, и действительно должен быть другой способ сделать это.

Я пытался удалить эти файлы из всех целевых членств, но это не помогло.

Ответ 1

Если вам нужно удалить много файлов, вы можете создать User-Defined Build Setting, который должен быть назван EXCLUDED_SOURCE_FILE_NAMES. И добавьте имена файлов или шаблоны.

В моем случае я выбрал цель, которую я хотел опустить некоторые файлы, Editor → Add Build Setting → Add User-Defined Setting (сначала это выкрашено каким-то образом). Я выбрал файл проекта (чуть выше TARGETS), затем повторно выбранный целевой файл и смог создать пользовательскую настройку) → name it EXCLUDED_SOURCE_FILE_NAMES → значение что-то вроде PREFIX *

Конечно, вы можете создать User-Defined Setting для всего проекта таким образом, чтобы все цели имели его.

Пример, как это может выглядеть: enter image description here

Оригинальный ответ: http://lists.apple.com/archives/xcode-users/2009/Jun/msg00153.html

Ответ 2

В Xcode 9 я не уверен насчет более старых версий, перейдите по ссылке:

Настройки сборки → Параметры сборки → Имена исключенных исходных файлов

Добавьте все имена файлов, которые вы хотите исключить. Вы даже можете сделать сопоставление по шаблону.

Ниже приведен пример того, как я исключил все файлы, начиная с dev- и заканчивая .cc для всех схем, кроме схемы отладки, созданной для симулятора. Все сборки Debug Simulator исключают файлы, начиная с release- и заканчивая .cc

enter image description here

Надеюсь это поможет!!

ОБНОВИТЬ

У меня была похожая проблема с фреймворками, и вы тоже можете исключить фреймворки из своего приложения!

Моя проблема заключалась в том, что у меня было 2 фреймворка, один был построен для симулятора, а другой - для ARM. iTunes Connect пожаловался на меня, включая симулятор с приложением.

Если у вас много фреймворков, это поможет уменьшить размер приложения.

Ответ 4

В качестве грязного взлома вы можете попробовать исключить не файлы, а его код, используя #ifdef NotCompile + #endif, как это было сделано в C\С++ с .h с добавлением\удаление #define NotCompile в YOURPROJECT-prefix.pch