cocoaPods總結(jié)

一、什么是CocoaPods?

前言: 思考如何引入一個(gè)第三方框架。 例如: 百度地圖SDK、友盟、ShareSDK、 信鴿推送等。

從github或某處下載第三方SDK

工程中導(dǎo)入所需要的SDK的文件 .a 或 .framework

添加SDK文件所依賴的系統(tǒng)的.framework。比如:

需要導(dǎo)入SystemConfiguration.framework、CoreLocation.framework、UIKit.framework、libsqlite3. dylib(Xcode 7.0下是tbd文件)等很多系統(tǒng)庫。

有可能還需修改-ObjC、修改Objective-C++

如果SDK更新了, 我們還需要把這個(gè)SDK移除掉, 再拖入一次

正如上所述,大家如果要使用第三方的SDK,需要重復(fù)以上的步驟。如此麻煩又浪費(fèi)時(shí)間, 并且都是重復(fù)性的操作,并沒有任何營養(yǎng)。因此, 如果想避免上述重復(fù)性的操作就可以使用CocoaPods這個(gè)工具。

CocoaPods 是一個(gè)第三方庫依賴管理工具。使用一行終端命令即可達(dá)到引入第三方庫的目的。CocoaPods的使用方式非常簡單。

二、CocoaPods安裝前準(zhǔn)備

CocoaPods使用Ruby語言編寫而成。因此需要Ruby的環(huán)境, 慶幸的是OS X已經(jīng)集成了Ruby環(huán)境。我們所需要的做的就是通過gem去安裝CocoaPods即可。

首次安裝CocoaPods之前,Ruby默認(rèn)源在墻外, 因此我們需要修改下Ruby默認(rèn)使用的源:

1.查詢Ruby的源

gem source -

查詢結(jié)果如下:

*** CURRENT SOURCES ***

https://rubygems.org/

查到的這個(gè)源是在墻外, 并且淘寶為我們提供了對應(yīng)的源鏈接,因此我們需要先移除源鏈接, 再添加淘寶的源:

2.移除Ruby的源

gem source --remove https://rubygems.org/

移除結(jié)果如下:

http://rubygems.org/ removed from sources

3.添加Ruby的源(最近做了修改, 改為了https)

gem source -a https://ruby.taobao.org/

添加結(jié)果如下:

https://ruby.taobao.org/ added to sources

對源的操作完成后, 就可以安裝CocoaPods了。

三、CocoaPods安裝

運(yùn)行以下命令, 即可實(shí)現(xiàn)CocoaPods的安裝

sudo gem install cocoapods

運(yùn)行之后需要輸入電腦的密碼, 并且沒有密碼輸入的位數(shù)提醒。輸完密碼就進(jìn)行安裝了,安裝過程可能會(huì)很慢,耐心等待。

上述命令安裝完成后,輸入以下命令, 進(jìn)行Cocoapods的建立

pod setup

如果上述命令運(yùn)行,且無錯(cuò)誤即完成了CocoaPods的安裝!

CocoaPods安裝過程中可能遇到的問題

xcrun找不到Xcode

xcrun: error: active developer path

("/Applications/Xcode.app/Contents/Developer/") does not exist, use \xcode-select --switch path/to/Xcode.app\ to specify the Xcode that you wish to use for command line developer tools (or see \man xcode-select\)

運(yùn)行以下命令, 讓xcrun的運(yùn)行路徑找到對應(yīng)的Xcode

sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

四、CocoaPods的使用

1. 創(chuàng)建一個(gè)需要使用CocoaPods的工程, 并在工程目錄下創(chuàng)建Podfile文件

cd /Users/QCL/Desktop/CocoaPods

pod init

創(chuàng)建完成如下圖中, 會(huì)出現(xiàn)Podfile文件

創(chuàng)建完P(guān)odfile

2.編輯Podfile文件

open -a Xcode Podfile

打開Podfile

其中#為注釋部分

打開后, 在 target 'CocoaPods' do 與 end 之間輸入你想導(dǎo)入的框架, 我們以AFNetworking為例:

target 'CocoaPods' do

pod 'AFNetworking'

end

3.執(zhí)行cocoapods的安裝操作

同樣也是要在工程目錄下

執(zhí)行以下命令:

pod install

等其執(zhí)行完畢,即可完成第三方庫的安裝

其中還可以調(diào)用pod update方法, 也可以達(dá)到第三方庫安裝的目的, 并且會(huì)更新版本

在pod install或者pod update過程中會(huì)執(zhí)行podspec索引的更新,需要等待很久,因此為了提升速度可以執(zhí)行如下命令, 關(guān)掉索引的更新

pod install --no-repo-update

并且在安裝過程中, 我們不知道cocoapods做了什么, 還可以添加一個(gè)參數(shù),用來提示我們,cococapods做了哪些操作

pod install --verbose --no-repo-update

安裝完成后, 工程目錄下會(huì)多出一個(gè)白色的文件,如下圖:

通過CocoaPods安裝完第三方后

之后再打開工程,就用白色的工程文件打開,不再使用藍(lán)色的工程文件。

打開之后,工程的目錄層級如下圖:


打開工程

其中Pods工程目錄是用來存放第三方庫和配置文件的,上面的CocoaPods依舊是我們的工程文件, 在它之中,我們可以繼續(xù)正常的編寫代碼。為了驗(yàn)證是否安裝成功, 我們可以在AppDelegate.m中引入我們所要使用的第三方庫的頭文件,如引入AFNetworking#import這里需要注意的是, 以后再引入第三方框架,要當(dāng)系統(tǒng)框架去引入用\

#import <框架頭文件.h>

4.pod搜索功能

CocoaPods上的大部分第三方框架均來自于GitHub, 因此數(shù)量也很龐大,記名字是很不明智的,因此,我們可以選擇通過搜索來找到自己想要尋找的第三方框架。

pod search 框架關(guān)鍵字, 如下:

pod search sdweb

通過搜索命令, 搜索到的內(nèi)容如下圖:

搜索結(jié)果

然后把你想要的框架的名字, 復(fù)制到Podfile文件中即可,Podfile文件中的第三方可以有多個(gè), 需要幾個(gè),就填入幾個(gè),CocoaPods會(huì)全部幫你下載下來。

至此, 就完成了CocoaPods的創(chuàng)建和使用。

五 其它

當(dāng)我們想要重新安裝CocoaPods的時(shí)候,需要卸載這個(gè)東西,很簡單,只需要執(zhí)行以下命令即可:

1?$?sudo?gem?uninstall?CocoaPods

如果安裝了多個(gè)版本,選擇All,即可全部卸載!?第三方版本號的各種寫法與含義:

1.pod?'AFNetworking'??????//不顯式指定依賴庫版本,表示每次都獲取最新版本

2.pod?'AFNetworking',??'2.0'?????//只使用2.0版本?

3.pod?'AFNetworking',?'>2.0'?????//使用高于2.0的版本?

4.pod?'AFNetworking',?'>=2.0'?????//使用大于或等于2.0的版本?

5.pod?'AFNetworking',?'<2.0'?????//使用小于2.0的版本?

6.pod?'AFNetworking',?'<=2.0'?????//使用小于或等于2.0的版本

7.pod?'AFNetworking',?'~>0.1.2'?????//使用大于等于0.1.2但小于0.2的版本,相當(dāng)于>=0.1.2并且<0.2.0

8.pod 'AFNetworking', '~>0.1'? ? //使用大于等于0.1但小于1.0的版本

9. pod 'AFNetworking', '~>0'? ? //高于0的版本,寫這個(gè)限制和什么都不寫是一個(gè)效果,都表示使用最新版本

作者聲明:文章為轉(zhuǎn)載~整理

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容