小编cvk*_*age的帖子

具有多个.xcconfig文件和cocoapods的复杂Xcode项目

我正在开发一个iOS项目,我们处于不幸的情况,我们必须使用的一些库有两个版本.用于调试的版本和用于生产的版本.无法使用生产库进行调试.并且同样不可能使用调试库.在生产中.

为了解决这个问题,我们在项目中设置了多个目标(一个用于调试,一个用于生产).这些目标使用单独的.xcconfig文件(App-Debug.xcconfig和App-Production.xcconfig)为每个目标定义:LIBRARY_SEARCH_PATHS,HEADER_SEARCH_PATHS和OTHER_LDFLAGS.

这一切都很有效,但是手动跟踪所有第三方依赖项是一件痛苦的事.因此我们决定开始使用CocoaPods来管理我们的一些第三方依赖项.

但由于这些"两个版本"库我们无法按预期使用Pods.xcconfig,但需要将设置从它附加到我们自己的App-Debug.xcconfig和App-Production.xcconfig.

我不确定这样做的正确方法,因为我尝试的所有内容似乎都无法编译,因为无法找到我的pod.

我们的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
Run Code Online (Sandbox Code Playgroud)

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)
Run Code Online (Sandbox Code Playgroud)

APP-Production.xcconfig:

#include "Config-XXX.xcconfig"
#include "Config-Tesseract.xcconfig"
#include "Config-AppMeasurement.xcconfig" …
Run Code Online (Sandbox Code Playgroud)

xcode ios cocoapods

16
推荐指数
1
解决办法
1万
查看次数

标签 统计

cocoapods ×1

ios ×1

xcode ×1