不要参考cocoapods附带的所有托架库

时间:2014-10-08 08:54:22

标签: xcode6 cocoapods podspec linker-flags

情况

我有一个静态库项目,它引用了一些其他静态库。 为了分发我的(公司内部)库,我添加了一个podspec文件。 我将第三方库添加到vendored_libraries中,如下所示:

spec.vendored_libraries = "dependencies/libraries/**/*.a"

和库命令如下:

spec.libraries = "AfariaSLL", "ClientHubSLL", "Connectivity", "CoreServices", "Datavault", "E2ETrace", "Logger", "MAFLogger", "MAFLogonManagerNG", "MAFLogonUING", "MAFUIComponents", "MAFUIHelper", "Parser", "PerformanceLib", "Request", "sqlcipher", "crypto", "MAFFormatters", "MAFLocaleAwareControls", "MAFZipHelper", "ssl", "xml2", "stdc++", "z"

当我将pod安装到我的一个项目时,* .a文件按预期复制并在Pods.debug.xcconfig和Pods.release.xcconfig文件中引用,如下所示:

OTHER_LDFLAGS = -ObjC -all_load -stdlib=libstdc++ -l"AfariaSLL" -l"ClientHubSLL" -l"Connectivity" -l"CoreServices" -l"Datavault" -l"E2ETrace" -l"Logger" -l"MAFFormatters" -l"MAFLocaleAwareControls" -l"MAFLogger" -l"MAFLogonManagerNG" -l"MAFLogonUING" -l"MAFUIComponents" -l"MAFUIHelper" -l"MAFZipHelper" -l"Parser" -l"PerformanceLib" -l"Pods-SBBSMPLib" -l"Request" -l"crypto" -l"sqlcipher" -l"ssl"

直到这里一切正常。

问题

并非每个项目都需要所有出售的库。所以我试着像这样引用所需的库:

spec.libraries = "AfariaSLL", "ClientHubSLL", "Connectivity", "CoreServices", "Datavault", "MAFLogonManagerNG", "MAFLogonUING", "MAFUIComponents", "Request"

并希望它会对OTHER_LDFLAGS产生影响。但不幸的是OTHER_LDFLAGS仍然是一样的。即使我完全删除了spec.librariesOTHER_LDFLAGS也没有改变。

摘要

如何实现将第三方库复制到项目中,但并非所有库都在OTHER_LDFLAGS中引用?

非常感谢你!

1 个答案:

答案 0 :(得分:0)

我尝试过的最简单的解决方案(并且有效 - 但未记录)是为可能的方案创建不同的podspec文件。这意味着:针对不同目标的不同spec.vendored_libraries定义