ios – 具有多个.xcconfig文件和可可插件的复杂Xcode项目

ios – 具有多个.xcconfig文件和可可插件的复杂Xcode项目,第1张

概述我正在开展一个iOS项目,我们处于不幸的情况,我们必须使用的一些图书馆有两个版本.用于调试的版本和用于生产的版本. 不可能使用生产库进行调试.并且同样不可能使用调试库.在生产中. 为了解决这个问题,我们在项目中设置了多个目标(一个用于调试,一个用于生产).这些目标使用单独的.xcconfig文件(App-Debug.xcconfig和App-Production.xcconfig)来定义:LIBR 我正在开展一个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中.

我不确定正确的方法来做到这一点,因为我尝试的一切,似乎没有编译,因为我的荚无法找到.

我们的Pods.xcconfig:

ALWAYS_SEARCH_USER_PATHS = YESheader_SEARCH_PATHS = ${PODS_headerS_SEARCH_PATHS}liBRARY_SEARCH_PATHS = "$(PODS_ROOT)/TestFlightSDK"OTHER_LDFLAGS = -ObjC -lTestFlight -lz -framework SystemConfiguration -framework UIKitPODS_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构建.

解决方法 你的podfile可以支持这个.你应该最终得到这样的东西

platform :ios,"5.0"link_with ['App','App-DeBUG'] pod 'Shared-Pod'target :App,:exclusive => true do  pod 'normal-Pod'endtarget :App-DeBUG,:exclusive => true do  pod 'DeBUG-Pod'end

这将生成两个xcconfig文件,每个目标一个.

总结

以上是内存溢出为你收集整理的ios – 具有多个.xcconfig文件和可可插件的复杂Xcode项目全部内容,希望文章能够帮你解决ios – 具有多个.xcconfig文件和可可插件的复杂Xcode项目所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1063983.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存