Xcode - импорт другого заголовочного файла с тем же именем на основе цели - PullRequest
5 голосов
/ 02 февраля 2011

У меня есть проект с несколькими целями, каждая из которых создает довольно похожие версии приложения, но с различными активами изображений и списками. Для списков / изображений это нормально, но я использую инфраструктуры ShareKit и Appirater, которые имеют заголовочные файлы с #defines для их конфигурации. Я считаю, что для каждой версии необходимо импортировать разные версии этого заголовочного файла, так как конфигурация отличается для каждого приложения, созданного для каждой цели.

Таким образом, цель A имеет SHConfig.h и цель B имеет РАЗЛИЧНЫЙ SHConfig.h

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

Есть ли лучший способ импортировать разные заголовочные файлы (с одинаковыми именами) в зависимости от цели?

Ответы [ 2 ]

5 голосов
/ 02 февраля 2011

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

Возможно, вы захотите установить что-то вроде $(SRCROOT)/foo:$(HEADER_SEARCH_PATHS), хотя я не уверен, что это необходимо.

0 голосов
/ 31 октября 2014

Что мне показалось полезным, так это поместить общее имя каталога в путь поиска заголовка, а затем использовать другой #import.Моя структура каталогов была Common / Views / v1 и Common / Views / v2.Я хотел v1 для одной цели и v2 для другой.

В моем случае путь поиска, который я использовал в Пути поиска заголовка, был:

$(SRCROOT)/../Common/

Затем я использовал:

#import <Views/v2/ActivityIndicator.h>

В цели, которая нуждалась ввторая версия (находит $ (SRCROOT) /../ Common / Views / v2 / ActivityIndicator.h).

Как ни странно, другая цель (первая, которую я создал) работает без указания полного пути.Т.е.

#import "ActivityIndicator.h"

работает, чтобы найти $ (SRCROOT) /../ Common / Views / v1 / ActivityIndicator.h

...