CocoaPods-Project上使用不同Platform podfile设定

CocoaPods-Project上使用不同Platform podfile设定

Xcode上同一专案是可以建立不同的Target并指定平台,以这次Danny的例子来说,同一专案要开发iOS、OSX这两个Target,在使用CocoaPods时需要指定不同平台使用的Pods,然而在CocoaPods上是支援指同不同的Target的。

格式

格式非常简单,以targetend为一个区块分格,再加上内容中的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编译时会出错。