CocoaPods安裝和使用

CocoaPods是iOS最常用的第三方類庫管理工具,絕大部分有名的開源類庫都支持CocoaPods。

CocoaPods是用Ruby實現的,要想使用它首先需要有Ruby的環境。幸運的是OS X系統默認已經可以運行Ruby了,因此我們只需執行以下命令:

sudo gem install cocoapods
sudo gem install -n /usr/local/bin cocoapods

由于某些原因,執行時會出現下面的錯誤提示:

ERROR:  Could not find a valid gem 'cocoapods' (>= 0), here is why:Unable to download data from https://rubygems.org/ - Errno::EPIPE: Broken pipe - SSL_connect (https://rubygems.org/latest_specs.4.8.gz)

由于眾所周知的原因,國內并不能訪問到官方的 Ruby 源,所以大部分朋友可能都是使用的國內的鏡像源。而這里面,使用的最多的,可能就是淘寶提供的鏡像源了。當你使用代理后如果還是很慢,可以用淘寶的RubyGems鏡像來代替官方版本,執行以下命令:

$ gem sources -l
$ gem sources --remove https://rubygems.org/
$ gem sources -a https://ruby.taobao.org/
$ gem sources -l

不過最近淘寶的鏡像源 ruby.taobao.org 停止更新了,所以使用 CocoaPods 的同學,請更新到 ruby china 的源。詳細的內容,請參見:https://ruby-china.org/topics/29250。另一方面 , CocoaPods 最近也升級到了 1.1.0 版本,主要是增加了對 Xcode 8 的支持。

更新方法:

$ gem update --system # 這里請翻墻一下
$ gem -v
2.6.3

如果提示沒有權限進行寫操作的話:

$ sudo gem update --system
$ gem sources --add https://gems.ruby-china.org/ --remove https://ruby.taobao.org/
$ gem sources -l
https://gems.ruby-china.org
# 確保只有 gems.ruby-china.org

這樣就替換完成了,聽說速度也比之前快了很多。

安裝成功后,接著執行命令:

pod setup

如果Ruby環境不夠新,可能需要更新以下:

sudo gem update --system

至此安裝就完成了,我們可以嘗試搜索一個第三方類庫:

pod search AFNetworking

使用CocoaPods的第一步,是在當前項目下(在終端下輸入cd空格將工程文件夾拖到終端內),新建一個Podfile文件:

touch Podfile

然后利用vim打開Podfile文件編輯,加入你想要使用的類庫,格式如下:

platform :ios


pod 'Reachability', '3.1.0'platform:ios, '6.0'

?pod 'JSONKit','1.4?'

?pod 'AFNetworking', '~> 2.3.1'

如果是拷貝的別人的項目,或是一個很久沒打開過的項目,可能需要先執行一下:

pod update

最后一步,執行命令:

pod install

當終端出現類似下面的提示后,就代表成功了:

[!] From now on use `Sample0814.xcworkspace`.

這個時候會看到項目文件夾下多了一個文件xxx.xcworkspace,以后要通過這個文件打開項目,老項目文件xxx.xcodeproj不再使用。

P.s.1 上面的每一步都有可能出現問題,但大部分問題都是因為大局域網的原因,用一個網速穩定的境外VPN可破。?

P.s.2 如果上面因為權限問題安裝失敗,必須每次都要刪除?

rm -rf /Users/loginnanme/Library/Caches/CocoaPods/

因為這個緩存中會存下你的github的東西,造成每次都調用上次權限問題的緩存。

P.s.3 關于Podfile文件編輯時,第三方庫版本號的各種寫法:

pod ‘AFNetworking’      //不顯式指定依賴庫版本,表示每次都獲取最新版本
pod ‘AFNetworking’,  ‘2.0’     //只使用2.0版本
pod ‘AFNetworking’, ‘>2.0′     //使用高于2.0的版本
pod ‘AFNetworking’, ‘>=2.0′     //使用大于或等于2.0的版本
pod ‘AFNetworking’, ‘<2.0′     //使用小于2.0的版本
pod ‘AFNetworking’, ‘<=2.0′     //使用小于或等于2.0的版本
pod ‘AFNetworking’, ‘~>0.1.2′     //使用大于等于0.1.2但小于0.2的版本,相當于>=0.1.2并且<0.2.0
pod ‘AFNetworking’, ‘~>0.1′     //使用大于等于0.1但小于1.0的版本
pod ‘AFNetworking’, ‘~>0′     //高于0的版本,寫這個限制和什么都不寫是一個效果,都表示使用最新版本
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 深入理解 CVPixelBufferRef通過這個可以看清楚CVPixelBufferRef的構成
    童冀閱讀 1,882評論 0 0
  • 《允許的強大力量》我唯一能做的,就是允許一切如其所是。 肯定語義,又叫祈禱文,在朗讀或者默念的時候,就能給自己帶來...
    張虹姿閱讀 621評論 0 3
  • 在這兩天的定位課程中,有不一樣的感悟。 在與人溝通相處時,不要被對方的情緒所影響。用蜜蜂的思維方式發現對方的優點,...
    愛很簡單閱讀 313評論 0 13