cocoapods 使用教學

24
CocoaPods(可可豆莢) 第三方套件相依管理工具 2014/03/31 HappyMan

Upload: shengwen-chiou

Post on 12-Jul-2015

11.298 views

Category:

Software


7 download

TRANSCRIPT

Page 1: CocoaPods 使用教學

CocoaPods(可可豆莢)

第三方套件相依管理工具

2014/03/31

HappyMan

Page 2: CocoaPods 使用教學

話說前言

• 在開發iOS App時,我們從Xcode開始創建專案,使用Apple提供輔助開發的Framework套件外,總是會發現有許多功能開發不易,於是時常需要引用第三方開發的Open Source套件來輔助。

• 使用第三方Open Source套件要注意到授權的規範、版本的演進、目前有或沒有哪些功能、以及目前待辦事項。

Page 3: CocoaPods 使用教學
Page 4: CocoaPods 使用教學
Page 5: CocoaPods 使用教學

遇到問題

• 當我們確定要引用某一第三方Library時,我們一直都是這麼做:選擇某一版本Library,直接下載回去本機端,放置在自己的專案中。

• 這種方式的缺點是,與原來的版本控管失去連結,未來若想升級Library,每次都必須重新下載,如此才能完成更新。

• 未來我們想要用某版本Library,還要花時間去搜尋。

Page 6: CocoaPods 使用教學

CocoaPods起源

• 每種語言發展到某一階段,就會出現相應的依賴管理工具,或者是中央程式碼倉庫。比如:

– Java: maven, Ivy

– Ruby: gems

– Python: pip, easy_install

– Nodejs: npm

• 隨著iOS開發者的增多,業界也出現了為iOS開發提供依賴管理的工具,這個工具就是:CocoaPods。

Page 7: CocoaPods 使用教學

CocoaPods起源

• CocoaPods是一個負責管理iOS專案中第三方開源程式碼的工具。CocoaPods專案的源碼在Github上管理。該專案開始於2011/08/12,經過兩年半的發展,現在提交數已經超過3000次,並且活躍地持續更新中。

• 開發iOS專案難免會需要使用第三方開源庫,CocoaPods的發展使得我們可以節省設置和更新第三方開源庫的時間。

Page 8: CocoaPods 使用教學

CocoaPods網站

• http://cocoapods.org/

Page 9: CocoaPods 使用教學
Page 10: CocoaPods 使用教學

如何使用

• 開啓終端機

• 輸入指令

– $ [sudo] gem install cocoapods (安裝)

– $ pod setup (設定)

• 接著就能使用

– $ pod help (幫助)

Page 11: CocoaPods 使用教學

搜尋指令 [pod search]

• $ pod search AFNetworking (搜尋AFNetworking)

• -> AFNetworking (2.2.1)A delightful iOS and OS X networking framework.

• pod 'AFNetworking', '~> 2.2.1’– Homepage:

https://github.com/AFNetworking/AFNetworking– Source:

https://github.com/AFNetworking/AFNetworking.git– Versions: 2.2.1, 2.2.0, 2.1.0, 2.0.3, 2.0.2, 2.0.1, 2.0.0-RC3,

2.0.0-RC2, 2.0.0-RC1, 2.0.0, 1.3.3, 1.3.2, 1.3.1, 1.3.0, 1.2.1, 1.2.0, 1.1.0, 1.0RC3, 1.0RC2, 1.0RC1, 1.0.1, 1.0, 0.9.2, 0.9.1, 0.9.0, 0.7.0, 0.5.1, 0.10.1, 0.10.0

Page 12: CocoaPods 使用教學

建立指令檔 (Podfile)

• 方法一:終端機

– $ vi Podfile

• platform :ios, '6.0'

• pod 'AFNetworking'

• 方法二:資料夾

• 路徑:專案母目錄

Page 13: CocoaPods 使用教學

在資料夾中

Page 14: CocoaPods 使用教學

安裝Library

• $ pod install (安裝Library)

– Analyzing dependencies

– Downloading dependencies

– Installing AFNetworking (2.2.1)

– Generating Pods project

– Integrating client project

– [!] From now on use `HappyTest.xcworkspace`.

• 之後開發皆開啟HappyTest.xcworkspace

Page 15: CocoaPods 使用教學

接著出現

Page 16: CocoaPods 使用教學

更新Library

• $ pod outdated (檢查Library是否過期)

– No updates are available.

• $ pod update (更新Library)

– Analyzing dependencies

– Downloading dependencies

– Using AFNetworking (2.2.1)

– Generating Pods project

– Integrating client project

Page 17: CocoaPods 使用教學

增加Library & 改版Librabry

• $ vi Podfile (使用VIM編輯名為Podfile的檔案)

– platform :ios, '6.0'– pod 'AFNetworking', '~>2.1.0'– pod 'MBProgressHUD'

• $ pod update (更新Library)

– Analyzing dependencies– Downloading dependencies– Installing AFNetworking (2.1.0)– Using MBProgressHUD (0.8)– Generating Pods project– Integrating client project

Page 18: CocoaPods 使用教學
Page 19: CocoaPods 使用教學

使用有用CocoaPods的開源

• 例:Canvas – Animate in Xcode without code

– https://github.com/CanvasPod/Canvas

– http://canvaspod.io/

• 說明:

– The demo app in this project uses CocoaPods, please run pod install after you download this project, then open Canvas.xcworkspace.

Page 20: CocoaPods 使用教學
Page 21: CocoaPods 使用教學

運作原理

• 研究CocoaPods的原理,它是將所有的依賴庫都放到一個名為Pods資料夾中,然後讓專案依賴Pods資料夾,如此,源碼管理工作都從專案移到了Pods資料夾中。技術細節有:

– Pods資料夾最終會編譯成一個名為libPods.a的文件,專案只需要依賴這個.a檔即可。

– 對於資源文件,CocoaPods提供了一個名為Pods-resources.sh的bash腳本,該腳本在每次專案編譯的時候都會執行,將第三方庫的各種資源文件複製到目標目錄中。

– CocoaPods通過一個名為Pods.xcconfig檔來在編譯時設置所有的依賴和參數。

Page 22: CocoaPods 使用教學

參考資料

• 官方網站http://cocoapods.org/

• CocoaPods:管理 Objective-C 專案裡頭各種 Library 關聯性最棒的方式http://tw.polydice.com/2012/07/04/cocoapods/

• 使用CocoaPods來做iOS程序的包依賴管理http://blog.devtang.com/blog/2012/12/02/use-cocoapod-to-manage-ios-lib-dependency/

Page 23: CocoaPods 使用教學

參考資料

• 套件管理工具CocoaPods介紹http://claire-chang.com/1693-套件管理工具cocoapods介紹

• CocoaPods:一個Objective-C第三方庫的管理利器http://www.cocoachina.com/newbie/basic/2012/1123/5168.html

• CocoaPodshttp://tom19830924.blogspot.tw/2013/04/cocoapods.html

Page 24: CocoaPods 使用教學

參考資料

• Cocoapods 好用的第三方套件管理http://4tyone.blogspot.tw/2013/09/cocoapods_4.html