其實之前就用過cocoapods,也在網上找了相關的教程,用的還好,后來就棄用了,因為合作開發,有的人不喜歡用這個。
現在來到新的公司,因為是新項目,所以我就打算重新拾起cocoapods,但是我居然又去查資料,也是醉了。所以為了以后不干這么豬的事情。打算記下來以后勤看看,別再做同樣浪費感情的事情。
好了廢話不多說直接上教程(ps:對于一個一點都沒有接觸過cocoapodse的iOS dev來說本教程同樣適用)。
1.前言
當你開發iOS應用時,會經常使用到很多第三方開源類庫,比如JSONKit,AFNetWorking等等。可能某個類庫又用到其他類庫,所以要使用它,必須得另外下載其他類庫,而其他類庫又用到其他類庫,“子子孫孫無窮盡也”,這也許是比較特殊的情況。總之小編的意思就是,手動一個個去下載所需類庫十分麻煩。另外一種常見情況是,你項目中用到的類庫有更新,你必須得重新下載新版本,重新加入到項目中,十分麻煩。如果能有什么工具能解決這些惱人的問題,那將“善莫大焉”。所以,你需要 CocoaPods。
CocoaPods應該是iOS最常用最有名的類庫管理工具了,上述兩個煩人的問題,通過cocoaPods,只需要一行命令就可以完全解決,當然前提是你必須正確設置它。重要的是,絕大部分有名的開源類庫,都支持CocoaPods。所以,作為iOS程序員的我們,掌握CocoaPods的使用是必不可少的基本技能了
現在的mac安裝了Xcode已經自帶了Ruby環境
國內的話因為那堵墻所以
我們用淘寶的Ruby鏡像來訪問cocoapods。按照下面的順序在終端中敲入依次敲入命令:
gem sources --remove https://rubygems.org/
//等有反應之后再敲入以下命令
gem sources -a https://ruby.taobao.org/
為了驗證你的Ruby鏡像是并且僅是taobao,可以用以下命令查看:
gem sources -l
只有在終端中出現下面文字才表明你上面的命令是成功的:
*** CURRENT SOURCES ***
https://ruby.taobao.org/
出現上面的這兩行代碼之后執行
sudo gem install cocoapods
等上十幾秒鐘,CocoaPods就可以在你本地下載并且安裝好了,不再需要其他設置。
敲入以上命令時,小編終端上是這個樣子的(由于太長,僅截取前面一部分):
看到這里,你心里會不會說,我靠!太爽了,這么容易就可以下載并且安裝好了!是的,小編也是這么想的。CocoPods就是這么簡單,使用也十分簡單。繼續往下看吧。
2.使用
以AFNetworking為例進行使用的介紹
在終端上執行如下代碼來查看AFNetworking的各個版本
pod search AFNetworking
這說明,AFNetworking是支持CocoaPods,所以我們可以利用CocoaPods將AFNetworking導入你的項目中。
首先,我們需要在我們的項目中加入CocoaPods的支持
在終端中進入(cd命令)你項目所在目錄,然后在當前目錄下,利用vim創建Podfile,運行:
vim Podfile```
然后在Podfile文件中輸入以下文字:
platform :ios, '7.0'//當前AFNetworking支持的iOS最高版本是iOS 7.0(可以不寫)
pod "AFNetworking", "~> 2.0"http://要下載的AFNetworking版本是2.0,這里用來版本控制,假如你不想下載最新版本的庫,可以在這里輸入你想要的版本,不寫的話默認是最新版本```
然后保存退出。vim環境下,保存退出命令是:
先按esc 然后輸入
:wq```
這時候,你會發現你的項目目錄中,出現一個名字為Podfile的文件,而且文件內容就是你剛剛輸入的內容。注意,Podfile文件應該和你的工程文件.xcodeproj在同一個目錄下。
這時候,你就可以利用CocoPods下載AFNetworking類庫了。還是在終端中的當前項目目錄下,運行以下命令
這時候要記住一點一定要關掉你的工程文件,然后再終端上執行如下代碼:
pod install```
注意:以后打開項目就用 CocoaPodsDemo.xcworkspace(也就是你工程目錄里面新出來的那個工程文件) 打開,而不是之前的.xcodeproj文件。
你也許會郁悶,為什么會出現.xcodeproj文件呢。這正是你剛剛運行$ pod install命令產生的新文件。除了這個文件,你會發現還多了另外一個文件“Podfile.lock”和一個文件夾“Pods”。 點擊 CocoaPodsDemo.xcworkspace 打開之后工程之后,項目Xcode目錄結構如下圖:
你會驚喜地發現,AFNetwoking已經成功導入項目了(紅框部分)!
網上的教程大都寫到這里就沒有了,但是好多人就會有疑問:怎么刪除第三方庫呢,這就要用到之前的Podfile了,我這里介紹一個最簡單的方法:
打開你的工程你會發現你的工程了多了一個Podfile,打開這個文件,然后你會看見很熟悉的代碼:
platform :ios, '7.0'//當前AFNetworking支持的iOS最高版本是iOS 7.0(可以不寫)
pod "AFNetworking", "~> 2.0"http://要下載的AFNetworking版本是2.0,這里用來版本控制,假如你不想下載最新版本的庫,可以在這里輸入你想要的版本,不寫的話默認是最新版本```
將```
pod "AFNetworking", "~> 2.0"```刪掉然后在終端執行
pod install
再打開工程你就會發現之前你添加的第三方庫成功刪除了。
如果你想在用cocoapods添加MJRfresh,就在這里添加 ```pod "MJRfresh"```
獲取查找相應的版本可以寫在這里,進行版本控制,不想寫的話就是獲取最新版本的庫。
###3.引用
當你在項目文件中引入AFNetworking.h的時候,這時候如果你發現import的時候沒有提示AFNetworking的文件,可以在target-Build Settings下修改“User Header Search Paths”項,新增${SRCROOT}并選擇rcursive,如下圖。

再次嘗試一下引用,是不是很開心哈哈!
###4.總結
其實好多東西要去敢于嘗試,不嘗試永遠不知道自己到底會不會,自己的能力能夠達到什么程度,懷著一顆好奇心,一步一步的探索,你會感受到其中的樂趣的。
###5.更新
最近在使用cocoaPods的時候,老是出現Updating local specs repositories的情況,一直等待著下載,就是不見有反應,后來發現是使用命令pod install被墻了,在網上查找到了新的命令pod install --verbose --no-repo-update,特此記錄下來,方便以后使用。
今天使用過程中又出現了問題

說是找不到AFNetworking,看到這我就懵逼了,我又把cocoapods下載的AFNetworking庫文件全部復制到另一個工程,我擦居然什么問題都沒有。然后我就各種找問題,最后發現了端倪,原來使用cocoapods要在進行設置添加庫

我都有點想放棄cocoapods了,媽蛋的。
這幾天又遇到了這個 問題,但是查了各種資料發現
import <AFNetworking/AFNetworking.h>//或者
import <AFNetworking.h>
如果我沒記錯的話,換用<>是可以在頭文件引用的原因的話,是因為項目文件的組織方式不同cocoapod是以target為目標設置依賴的所以,cocoapod引用的庫類似于framework說簡單一點,“”是在同文件夾內而<>可以跨引用庫,也就是范圍更大具體的編譯原理我不太清楚,你可以朝著這個方向去查*****br />當然,前提是<>能夠在頭文件引用成功。
歡迎關注我的[微博](http://dwz.cn/Smallwolf)和[博客](http://blog.sina.com.cn/u/2209572342)