開發(fā) iOS 項目不可避免地要使用第三方開源庫,CocoaPods 的出現(xiàn)使得我們可以節(jié)省設(shè)置和更新第三方開源庫的時間,下面簡單的介紹下安裝與使用。
安裝CocoaPods
安裝方式異常簡單 , Mac 下都自帶 ruby,使用 ruby 的 gem 命令即可下載安裝:
$ sudo gem install cocoapods
通常會出現(xiàn)下面這個錯
ERROR: Could not find a valid gem 'cocoa' (>= 0), here is why:
Unable to download data from https://rubygems.org/ - Errno::ECONNRESET: Connection reset by peer - SSL_connect (https://rubygems.org/latest_specs.4.8.gz)
另外,ruby 的軟件源 https://rubygems.org 因為使用的是亞馬遜的云服務(wù),所以被墻了,需要更新一下 ruby 的源,使用如下代碼將官方的 ruby 源替換成國內(nèi)淘寶的源:
$gem sources --remove https://rubygems.org/
$gem sources -a https://ruby.taobao.org/
$gem sources -l
然后再重試
$ sudo gem install cocoa pods
假如又遇到這個錯
Operation not permitted - /usr/bin/fuzzy_match
可以
$ sudo gem install -n /usr/local/bin cocoapods
$ pod setup
這一步 pod setup可能會等很久,請耐心等待,1個小時內(nèi)正常
如果你的 gem 太老,可能也會有問題,可以嘗試用如下命令升級 gem:
$sudo gem update --system
還有一點(diǎn)需要注意,pod setup在執(zhí)行時,會輸出Setting up CocoaPods master repo,但是第一次會等待比較久的時間。這步其實(shí)是 Cocoapods 在將它的信息下載到 ~/.cocoapods目錄下,如果你等太久,可以試著 cd 到那個目錄,用du -sh *來查看下載進(jìn)度
使用CocoaPods
第一步創(chuàng)建 Podfile 文件,在需要使用文件目錄下
$ vim Podfile
第二步 導(dǎo)入您所需要的第三方庫
platform :ios, '8.0'
use_frameworks!
target 'MyApp' do
pod 'AFNetworking', '~> 3.0'
pod 'SwiftyJSON', '~> 2.3'
end
當(dāng)然MyApp轉(zhuǎn)換成你個人項目的名字啦
注意iOS8.0之后,可以增加的動態(tài)庫了(以前只能是靜態(tài)庫的),為了匹配動態(tài)庫,增加了
use_frameworks!
所以我們很多時候都需要加入這句啦
第三步 編譯后既可以用了
pod install
第四步 注意的地方
1、使用 CocoaPods 生成的 .xcworkspace 文件來打開工程,而不是以前的 .xcodeproj 文件。
2、每次更改了 Podfile 文件,你需要重新執(zhí)行一次pod update命令。
3、需要查找你所需要的第三方庫,直接 pod search 即可。
4、不要輕易改動項目里面pod文件里的東西。
可能遇到的問題
1、pod install的時候無限卡在Updating local specs repositories
可以使用 pod install --no-repo-update
2、出現(xiàn)下面這個錯誤的時候,可能是系統(tǒng)升級后的原因
ERROR: Could not find a valid gem 'cocoapods' (>= 0), here is why:
Unable to download data from https://rubygems.org/ - Errno::ETIMEDOUT: Operation timed out - connect(2) (https://rubygems.org/latest_specs.4.8.gz)
ERROR: Possible alternatives: cocoa pods
此時需要您重新 pod setup一下,當(dāng)然上面的那個錯,首先你必須先切換官方源啦,就是上文提到的切換到淘寶源(注意是https://ruby.taobao.org/ 因為以前沒有s的)就好啦
3、出現(xiàn)下面這種提示

這樣其實(shí)代表可以用了,也可以升級升級方法:
sudo gem install -n/user/local/bin cocoapods
4、pod inatall 出現(xiàn)下列問題
- Use the `$(inherited)` flag, or
- Remove the build settings from the target.
則我們需要在Finder中找到項目的項目名.xcodeproj,顯示報內(nèi)容,然后搜OTHER_LDFLAGS,然后你遇到了與之相關(guān)的刪除即可。
OTHER_LDFLAGS = "";
或
<key>OTHER_LDFLAGS</key>
<string></string>
5、 CocoaPods報錯:The dependency AFNetworking is not used in any concrete target
是在創(chuàng)建的Podfile的時候,需要按格式創(chuàng)建,不能像以前那樣的原始方法啦。
platform :ios, '8.0'
use_frameworks!
target 'MyApp' do
pod 'AFNetworking'
pod 'SwiftyJSON'
end
6、提示 file not found 的時候
那么我們可以嘗試這么引入,以“Masonry”舉例,:#import "Masonry.h"或者通過#import "Masonry/Masonry.h"
如果仍然沒有效果,那么需要在工程配置一下.在工程的Build Settings搜索Search Paths,然后在User header search paths中添加$(SRCROOT)并且選擇recursive。

參考的鏈接
http://www.devtang.com/blog/2014/05/25/use-cocoapod-to-manage-ios-lib-dependency/
http://my.oschina.net/w11h22j33/blog/206129