2017-02-20 4 views
0

При копировании параметров сборки целевого объекта и вставить их в файл xcconfig в виде обычного текста, один находит выход распределили условиями для каждой конфигурации сборки, например:Как директивы условной компиляции Xcode «: configuration» работают в файле xcconfig?

//:configuration = Debug 
SETTING = value 
SETTING = value 
SETTING = value 

//:configuration = Release 
SETTING = value 
SETTING = value 
SETTING = value 

//:completeSettings = some 
SETTING 
SETTING 
SETTING 

Некоторых вопросы о том, как «Конфигурация» Директивы:

  1. Если я задаю настройку над всеми из них в том же файле, применим ли она ко всем конфигурациям сборки?

  2. Я предполагаю, что они относятся к группе настроек ниже их, но применимы ли они к настройкам после пустых строк?

ответ

0

Короткий ответ:

Комментарии не являются ни условия, ни директивы. Это просто комментарии, используемые для уточнения конфигурации сборки. Следующие записи относятся к. Когда вы копируете полные настройки сборки цели, результирующий текст не предназначен для использования в одном файле xcconfig. Скорее, его можно использовать для извлечения элементов, необходимых для разных конфигурационных файлов. В комментариях упрощается поиск параметров, необходимых для конкретной конфигурации сборки.

Таким образом, если вы назначили файл xcconfig конфигурации конфигурации отладки для цели, вы можете скопировать настройки в //:configuration = Debug в этот файл и внести туда какие-либо изменения.

Длинный ответ:

Вы можете назначить ровно один файл xcconfig за конфигурации сборки на каждую цель.

(Вы можете сделать это в Info редактор проекта под конфигураций, где вы найдете список конфигураций, где каждая конфигурация может быть расширена, чтобы отобразить список, состоящий из проекта и его целей. Вы можете назначить один файл конфигурации каждому из них, выбрав из списка конфигурационных файлов. Указанные файлы конфигурации состоят из всех файлов конфигурации, добавленных в проект.)

Параметры, указанные в назначенном файле xcconfig, указаны в используется при построении настроек сборки для целевой конфигурации и сборки, которую она назначила до, и они будут отображаться в редакторе настроек сборки в Xcode. Система сборки использует иерархию параметров конфигурации, которая используется для создания параметров, которые будут окончательно применены.

* (Вы можете увидеть это отражено в редакторе параметров сборки Xcode Выберите Все и Уровни в верхней части редактора Параметры построения ко всему.) Система сборки начинается с по умолчанию для платформы (например, iOS По умолчанию). Их можно изменить с помощью настроек на уровне проекта, а затем с помощью настроек на целевом уровне. В редакторе настроек сборки в конце перечислены настройки Resolved, чтобы вы могли точно определить, какие настройки будут применены.) *

Параметры применяются в следующем порядке, в котором каждая последующая запись будет переопределять предыдущее значение:

Default -> Project Config File -> Project -> Target Config File -> Target. 

Итак, если вы укажете, скажем, Valid архитектуры в конфигурационном файле, назначенного проект для определенной конфигурации сборки, то эта настройка переопределит настройку по умолчанию. Однако, если в редакторе настроек сборки Xcode вы укажете другое значение для этого параметра на уровне проекта, то это значение переопределит значение, указанное в файле xcconfig. Затем, если в файле xcconfig есть запись для цели для этой конфигурации сборки, тогда это значение будет применено, если, конечно, оно не будет переопределено значением для этого параметра на целевом уровне в редакторе настроек сборки. (Confused yet? :-)

Как я уже писал, только один файл xcconfig может быть применен для каждой комбинации цели/сборки. К счастью, файлы xcconfig могут импортировать другие файлы xcconfig, чтобы группы параметров можно объединить в логические единицы, а затем импортировать в конечные файлы xcconfig, которые должны быть назначены для конфигурации target/build. Если вы хотите узнать больше о содержании файлов xcconfig, посмотрите здесь: The Unofficial Guide to xcconfig files

Смежные вопросы