我有一个静态库项目,它引用了一些其他静态库。 为了分发我的(公司内部)库,我添加了一个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
中引用?
非常感谢你!
答案 0 :(得分:0)
我尝试过的最简单的解决方案(并且有效 - 但未记录)是为可能的方案创建不同的podspec文件。这意味着:针对不同目标的不同spec.vendored_libraries
定义