Подтвердить что ты не робот

Что такое $(унаследованный) в настройках пути поиска Xcode?

Каков путь пути поиска $(inherited)?

Я изменил настройки пути к заголовку и библиотеке для OpenSSL для iPad, и эта проблема вместе с рекурсивным вариантом для данного пути была основным виновником.

Когда я перестроил пути поиска, чтобы сначала посмотреть в директории, а затем в $(inherited), были созданы iPad-сборки.

4b9b3361

Ответ 1

Я тоже ищу документацию. Но я сделал опыт, что $(inherited) можно использовать для наследования параметров сборки от уровня проекта до целевого уровня. Когда вы определяете пути поиска библиотек или заголовков на уровне проекта, вы можете использовать $(inherited) в настройках целевой сборки, чтобы использовать эти пути поиска в путях поиска целевых объектов проекта.

Ответ 2

Если вы перейдете к настройкам целевой сборки и переключитесь в режим уровня

Alt text

Вы можете видеть поток inherited справа налево

Resolved <- Target <- xcconfig <- Project <- iOS Default

Итак, в inherited в Target означает, что Target наследует настройки из xcconfig и Project

Ответ 3

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

// Variable set in the project file, previous level
OTHER_LDFLAGS = -ObjC

// lib.xcconfig
OTHER_LDFLAGS = -framework Security

^ При компиляции с этим предыдущее значение OTHER_LDFLAGS -ObjC будет переопределено новым значением -framework Security.

Пример наследования переменных настройки сборки, установленных на уровне проекта или цели, путем добавления предыдущего значения этой переменной в файле xcconfig. Думайте о $(inherited) как о специальной переменной, которую можно использовать для получения существующего значения переменной, чтобы присвоение этой же переменной не было разрушительным.

// Variable set in the project file, previous level
OTHER_LDFLAGS = -ObjC

// lib.xcconfig
OTHER_LDFLAGS = $(inherited) -framework Security

^ При компиляции с этим значение OTHER_LDFLAGS будет -ObjC -framework Security.

Пример найден на https://pewpewthespells.com/blog/xcconfig_guide.html

Ответ 4

ДОПОЛНЕНИЕ: с $(inherited) Настройки сборки- > Путь к библиотеке автоматически заполняется, когда вы добавляете библиотеку в цель, щелкнув правой кнопкой в ​​целевом членстве. Это не происходит иначе.

Ответ 5

Сохранение существующих значений

Чтобы добавить, а не заменить существующие определения, используйте переменную $(inherited) следующим образом:

BUILD_SETTING_NAME = $(inherited)additional value

Обычно вы делаете это для создания списков значений, таких как пути, в которых компилятор ищет каркасы для поиска включенных заголовочных файлов FRAMEWORK_SEARCH_PATHS:

FRAMEWORK_SEARCH_PATHS = $(inherited) $(PROJECT_DIR)

Xcode назначает унаследованные значения в следующем порядке (от низшего к высшему приоритету):

  • Платформа по умолчанию
  • Настройки сборки файла проекта XCode
  • Файл xcconfig для проекта Xcode
  • Настройки активной целевой сборки
  • Файл xcconfig для активной цели

Вы можете получить награду за это на практике, используя вкладку Levels

enter image description here

Источник здесь