0

情况

我有一个静态库项目,它引用了其他一些静态库。为了分发我的(公司内部)库,我添加了一个 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.libraries条线,OTHER_LDFLAGS也不会改变。

概括

我怎样才能实现将第三方库复制到项目中但并非所有库都在OTHER_LDFLAGS

太感谢了!

4

1 回答 1

0

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

于 2014-10-08T13:03:22.500 回答