CocoaPods 管理 Objective-C 專案

伴著 App 大賣,至今已進入 500億大關, Objective-C 開發也越來火紅,相關的 library 也越來越多!


話說當我們要造一台車,有些東西真不用自已在重新開發輪子,我覺得像 Ruby 一樣! gem 非常多~

好一段時間沒研究了! 剛好最近需要開發 iOS,在找工具時發現了 CocoaPods 真是個管理輪子及相依性的好工具!

一方面也知道用了那些輪子,有些輪子是擴充某個版本輪子的 category,沒注意一更新可能會造成相依性問題出錯,此外也可在官網搜尋有那些好用的輪子,網海中輪子爆多,有這方便了不少!

Install

CocoaPods 採用 ruby gem 發怖,在 terminal 輸入安裝

1
2
gem install cocoapods
pod setup
  • 這動作會把 CocoaPods/Specs repo 拉進 ~/.cocoapods (Library 列表)

USE

接著在專案中新增一個檔案 Podfile 內容如下

Podfile
1
2
3
platform :ios, '6.0'
pod 'AFNetworking'
pod 'Reachability', '~> 3.0.0'

並執行

1
pod install

會產生一個 Pods 的資料夾、Podfile.lock 還有 {project name}.xcworkspace

它會在專案中加入 libPods.a 靜態 library,並把專案跟相依的 library 加到 {project name}.xcworkspace
之後每次都必需要開啟 {project name}.xcworkspace 這個檔來編輯、編譯你的專案

現在可以在專案加入 #import <Reachability.h> 開始 work 了

更新

pod install 會安裝在 Podfile.lock 裡所指定的版本,沒指定會裝 Podfile 裡的

pod update 只管更新 Podfile 裡的版本

Podfile

1
2
3
4
5
6
pod 'AFNetworking', '0.5.1' #指定版本
pod 'AFNetworking', '>= 0.5.1' #大於或等於某一版
pod 'AFNetworking', '~> 1.0.3' #會安裝 >= 1.0.3 到 1.0.x,也就是 < 1.1以下的
pod 'Objection', :head #'bleeding edge' 最新版? 應該是連 beta 版也裝吧!
pod 'AFNetworking', :local => '~/Desktop/AFNetworking' #本地端
pod 'AFNetworking', :git => 'https://github.com/AFNetworking/AFNetworking' #也可以設定遠端

參考官方wiki

圖形介面方案Alcatraz

另外還有一套圖形介面方案 Alcatraz
但目前我覺得輪子比 CocoaPods 少,但比較方便的是有另外把 theme 及 templates 作歸類。

~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins 資料夾裡執行安裝:

1
curl -L http://goo.gl/xfmmt | tar xv -C ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins -

重開 Xcode , Window 選單下會有 Package Manager,但我目前還沒努力用他就是了 XD