我在我的Xcode 4项目中使用CocoaPods,我的项目有三个目标(默认情况下,一个用于构建精简版本,一个用于构建演示版本) . 所有目标都使用相同的库,但CocoaPods只是将静态库和搜索路径添加到主目标 . 我的podfile看起来像这样:
platform :ios, '5.0'
pod 'TestFlightSDK', '>= 1.1'
pod 'MBProgressHUD', '0.5'
pod 'iRate', '>= 1.6.2'
pod 'TimesSquare', '1.0.1'
pod 'AFNetworking', '1.1.0'
pod 'KKPasscodeLock', '0.1.5'
pod 'iCarousel', '1.7.4'
我让这个工作的唯一方法是单独指定每个目标,再次列出所有的pod .
platform :ios, '5.0'
target :default do
pod 'TestFlightSDK', '>= 1.1'
pod 'MBProgressHUD', '0.5'
pod 'iRate', '>= 1.6.2'
pod 'TimesSquare', '1.0.1'
pod 'AFNetworking', '1.1.0'
pod 'KKPasscodeLock', '0.1.5'
pod 'iCarousel', '1.7.4'
end
target :lite do
link_with 'app-lite'
pod 'TestFlightSDK', '>= 1.1'
pod 'MBProgressHUD', '0.5'
pod 'iRate', '>= 1.6.2'
pod 'TimesSquare', '1.0.1'
pod 'AFNetworking', '1.1.0'
pod 'KKPasscodeLock', '0.1.5'
pod 'iCarousel', '1.7.4'
end
target :demo do
link_with 'app-demo'
pod 'TestFlightSDK', '>= 1.1'
pod 'MBProgressHUD', '0.5'
pod 'iRate', '>= 1.6.2'
pod 'TimesSquare', '1.0.1'
pod 'AFNetworking', '1.1.0'
pod 'KKPasscodeLock', '0.1.5'
pod 'iCarousel', '1.7.4'
end
有一个更好的方法吗?
4 回答
最简单的方法是使用抽象目标,其中指定的每个pod将与所有目标链接 .
CocoaPods 1.0已经改变了这个的语法 . 它现在看起来像这样:
OUTDATED Pre CocoaPods 1.0回答:
是的,有更好的方法!查看link_with,您可以在
link_with 'MyApp', 'MyOtherApp'
指定多个目标 .我使用像
link_with 'App', 'App-Tests'
这样的单元测试(注意目标名称中的空格) .例:
2017更新
你可以用abstract_target
我认为更好的解决方案是
参考来自:http://natashatherobot.com/cocoapods-installing-same-pod-multiple-targets/
如果您希望多个目标共享相同的pod,请使用abstract_target .
要不就
来源:https://guides.cocoapods.org/using/the-podfile.html