Я работаю над проектом iOS, где мы находимся в неудачной ситуации, когда некоторые из библиотек, которые мы должны использовать, выпускаются в двух версиях. Версия для отладки и версия для производства. Невозможно отладить работу с производственной библиотекой. и также невозможно использовать debug lib. в производстве.
Чтобы решить эту проблему, мы создали несколько проектов (один для отладки и один для производства) в проекте. Эти цели используют отдельные файлы .xcconfig(App-Debug.xcconfig и App-Production.xcconfig), чтобы определить: LIBRARY_SEARCH_PATHS, HEADER_SEARCH_PATHS и OTHER_LDFLAGS для каждой цели.
Все это работает просто отлично, но больно следить за всеми нашими зависимостями третьей стороны вручную. Поэтому мы решили начать использовать CocoaPods для управления некоторыми нашими зависимостями третьей стороны.
Но из-за этих библиотек "двух версий" мы не можем использовать Pods.xcconfig, как предполагалось, но вам нужно добавить настройки из этого в наш собственный App-Debug.xcconfig и App-Production.xcconfig.
Я не уверен в правильном способе сделать это, поскольку все, что я пытаюсь, похоже, не компилируется, потому что мои объекты не могут быть найдены.
Наш Pods.xcconfig:
ALWAYS_SEARCH_USER_PATHS = YES
HEADER_SEARCH_PATHS = ${PODS_HEADERS_SEARCH_PATHS}
LIBRARY_SEARCH_PATHS = "$(PODS_ROOT)/TestFlightSDK"
OTHER_LDFLAGS = -ObjC -lTestFlight -lz -framework SystemConfiguration -framework UIKit
PODS_BUILD_HEADERS_SEARCH_PATHS = "${PODS_ROOT}/BuildHeaders" "${PODS_ROOT}/BuildHeaders/AFNetworking" "${PODS_ROOT}/BuildHeaders/TestFlightSDK"
PODS_HEADERS_SEARCH_PATHS = ${PODS_PUBLIC_HEADERS_SEARCH_PATHS}
PODS_PUBLIC_HEADERS_SEARCH_PATHS = "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/AFNetworking" "${PODS_ROOT}/Headers/TestFlightSDK"
PODS_ROOT = ${SRCROOT}/Pods
App-Debug.xcconfig:
#include "Config-XXX.xcconfig"
#include "Config-Tesseract.xcconfig"
#include "Config-AppMeasurement.xcconfig"
#include "Config-Libxml2.xcconfig"
#include "Config-Frameworks.xcconfig"
LIBRARY_SEARCH_PATHS = $(inherited) $(XXX_LIBRARY_SEARCH_PATH_DEBUG) $(TESSERACT_LIBRARY_SEARCH_PATH) $(APPMEASUREMENT_LIBRARY_SEARCH_PATH)
HEADER_SEARCH_PATHS = $(inherited) $(TESSERACT_HEADER_SEARCH_PATH) $(LIBXML2_HEADER_SEARCH_PATH) $(XXX_HEADER_SEARCH_PATH)
OTHER_LDFLAGS = $(inherited) -lz -lxml2 -lstdc++ -all_load -ObjC -lXXXLibrary $(APPLE_FRAMEWORKS)
App-Production.xcconfig:
#include "Config-XXX.xcconfig"
#include "Config-Tesseract.xcconfig"
#include "Config-AppMeasurement.xcconfig"
#include "Config-Libxml2.xcconfig"
#include "Config-Frameworks.xcconfig"
LIBRARY_SEARCH_PATHS = $(inherited) $(XXX_LIBRARY_SEARCH_PATH_PRODUCTION) $(TESSERACT_LIBRARY_SEARCH_PATH) $(APPMEASUREMENT_LIBRARY_SEARCH_PATH)
HEADER_SEARCH_PATHS = $(inherited) $(TESSERACT_HEADER_SEARCH_PATH) $(LIBXML2_HEADER_SEARCH_PATH) $(XXX_HEADER_SEARCH_PATH)
OTHER_LDFLAGS = $(inherited) -lz -lxml2 -lstdc++ -all_load -ObjC -lXXXLibrary $(APPLE_FRAMEWORKS)
Config-XXX.xcconfig:
XXX_LIBRARY_SEARCH_PATH_DEBUG = "$(SRCROOT)/External/XXX"
XXX_LIBRARY_SEARCH_PATH_PRODUCTION = "$(SRCROOT)/External/XXX/LibProd"
XXX_HEADER_SEARCH_PATH = "$(SRCROOT)/External/XXX/headers"
Как мы видим, как Pods.xcconfig, так и наш собственный App-Debug.xcconfig устанавливает: LIBRARY_SEARCH_PATHS, HEADER_SEARCH_PATHS и OTHER_LDFLAGS.
Мне нужно, чтобы значения, объявленные в Pods.xcconfig, добавлены к значениям, которые мы объявляем в App-Debug.xcconfig.
Мы используем Xcode 4.6 и создаем для iOS 4.3.