私は iOS プロジェクトに取り組んでいますが、使用しなければならないライブラリの一部が 2 つのバージョンで提供されているという不幸な状況にあります。デバッグ用のバージョンと本番用のバージョン。製品ライブラリでデバッグすることはできません。同様に、デバッグ ライブラリを使用することはできません。生産中。
この問題を解決するために、プロジェクトに複数のターゲット (デバッグ用と本番用) を設定しました。これらのターゲットは、個別の .xcconfig ファイル (App-Debug.xcconfig および App-Production.xcconfig) を使用して、ターゲットごとに LIBRARY_SEARCH_PATHS、HEADER_SEARCH_PATHS、および OTHER_LDFLAGS を定義します。
これはすべてうまく機能しますが、すべてのサードパーティの依存関係を手動で追跡するのは面倒です. そのため、CocoaPods を使用してサードパーティの依存関係を管理することにしました。
しかし、これらの「2 つのバージョン」ライブラリがあるため、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)
構成-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 用にビルドしています。