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編譯時會出錯。