CocoaPods-Project上使用不同Platform podfile设定
Xcode上同一专案是可以建立不同的Target并指定平台,以这次Danny的例子来说,同一专案要开发iOS、OSX这两个Target,在使用CocoaPods时需要指定不同平台使用的Pods,然而在CocoaPods上是支援指同不同的Target的。
格式
格式非常简单,以target
及end
为一个区块分格,再加上内容中的link_with
与实际Target名称要一样产生链结:
target :Target名称 do link_with 'Target名称' --开始Target相关设定及pod : : : end
例子
以目前要开发的DaikinRC来说,已经开发完成OSX版本后,要利用OSX建立好的一些Objects或资源共用,所以建立一个新的Target,在不同的Target需要指定不同环境的’AFNetworking`:
所以Podfile的内容如下:
target :iDaikinRC do platform:'ios','8.0' link_with 'iDaikinRC' pod 'AFNetworking','~> 2.0' end target :DaikinRC do platform:'osx','10.9' link_with 'DaikinRC' pod 'AFNetworking','~> 2.0' end
确定内容无误后执行pod install
重新安装Pods及建立新的.xcworkspace
环境即完成。
注意事项
专案建立时像Danny这样先开发OSX时就使用CocoaPods,那你有多Target时要注意之前的设定。原本只有单一Target时,CocoaPods建立的.a
档案名称预设为libPods.a
,并且在Linked Frameworks and Libraries
可看见:
但你变更为多个Target时,CocoaPods为了要区分,会以你的Target名称为档名内容帮你增加引入的Library,但可能未将之前的设定删除,需要自行手动删除(删除libPods.a):
以上每个Taget都要检查一遍,否则在Build编译时会出错。