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

IOS: Уточнить различные пути поиска

В настройках сборки XCode существует три разных пути поиска:

  • Путь к поиску в каркасе
  • Путь поиска заголовка
  • Путь поиска в библиотеке

Может ли кто-нибудь уточнить, что делают эти пути и для чего они используются?

4b9b3361

Ответ 1

Путь поиска в каркасе: где искать frameworks (.framework bundles) в дополнение к путям системных фреймворков. Не очень сильно используется в iOS-разработке, официально не существует инфраструктур iOS для разработчиков.

В Mac-разработке он автоматически устанавливается, если вы перетаскиваете стороннюю структуру в проект. В противном случае просто установите его в каталог контейнера, в котором вы сохранили фреймворк.

В xcconfig файлах вы используете эту переменную:

FRAMEWORK_SEARCH_PATHS = "/path/to/frameworks/container/directory"

Путь поиска заголовка: где искать файлы заголовков (.h files) в дополнение к системным путям. Обычно вам это нужно, если вы используете стороннюю библиотеку. Установите его в каталог, в котором у вас есть файлы заголовков. Если вы используете каталог для включения заголовка (пример: #import "mylibrary/component.h"), установите его в родительский каталог.

В xcconfig файлах вы используете эту переменную:

HEADER_SEARCH_PATHS = "/path/to/headers/container/directory"

Путь к библиотеке: где искать файлы библиотек в дополнение к системным путям. Xcode автоматически установит его, если вы перетащите библиотеку (.a files) в проект. Чтобы установить его вручную, используйте каталог, в котором находится библиотека.

В xcconfig файлах вы используете эту переменную:

LIBRARY_SEARCH_PATHS = "/path/to/libraries/container/directory" 

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

Ответ 2

Они используются для поиска фреймворков, файлов заголовков или библиотек, которые не входят в пути поиска системы (например, QTKit.Framework, стандартные файлы заголовков С++ и т.д.).

Мое наиболее распространенное использование для этого - использование файлов библиотеки заголовков boost (*.hpp) в моем коде. Я добавляю относительный путь "../lib/Boost/1.46.1" к пути поиска заголовка.

Мне лучше добавить это на уровне проекта, а не в каждую цель. Таким образом, цели наследуют это, и его нужно изменить только в одном месте, если я обновляю версию boost.