本文源自本人的學(xué)習(xí)記錄整理與理解幽污,其中參考閱讀了部分優(yōu)秀的博客和書籍吁津,盡量以通俗簡(jiǎn)單的語(yǔ)句轉(zhuǎn)述凭舶。引用到的地方如有遺漏或未能一一列舉原文出處還望見諒與指出咽筋,另文章內(nèi)容如有不妥之處還望指教溶推,萬(wàn)分感謝。
在 iOS 項(xiàng)目中使用第三方庫(kù)可以說是很常見也必然會(huì)用到的,但是想要正確的配置是件很繁瑣的事情,幸運(yùn)的是在Github找到一個(gè)叫做CocoaPods的最常用最有名的類庫(kù)管理工具可以幫助我們解決這繁瑣的問題 ?.
什么是CocoaPods ??
CocoaPods是 iOS 最常用最有名的類庫(kù)管理工具, 通過簡(jiǎn)單的命令行就能夠完成繁瑣的類庫(kù)導(dǎo)入集成,CocoaPods的出現(xiàn)使得我們可以節(jié)省設(shè)置和更新第三方開源庫(kù)的時(shí)間,在我們有了CocoaPods這個(gè)工具之后奸攻,只需要將用到的第三方開源庫(kù)放到一個(gè)名為Podfile的文件中.這樣就方便我們集中管理項(xiàng)目中用到的類庫(kù).Cocoapods意義體現(xiàn)在兩個(gè)方面蒜危。第一,在引入第三方庫(kù)時(shí)它可以自動(dòng)為我們完成各種各樣的配置睹耐,包括配置編譯階段辐赞、連接器選項(xiàng)、甚至是ARC環(huán)境下的-fno-objc-arc配置等硝训。第二响委,使用CocoaPods可以很方便地查找新的第三方庫(kù),這些類庫(kù)是比較“標(biāo)準(zhǔn)的”窖梁,而不是網(wǎng)上隨便找到的赘风,這樣可以讓我們找到真正好用的類庫(kù)!
了解 CocoaPods?
CocoaPods是用Ruby寫的,并劃分成了若干個(gè)Gem包窄绒。
CocoaPods在解析執(zhí)行過程中最重要的幾個(gè)包的路徑分別是:CocoaPods/CocoaPods贝次、CocoaPods/Core和CocoaPods/Xcodeproj。
CocoaPods / CocoaPod:這是面向用戶的組件彰导,每當(dāng)執(zhí)行一個(gè)pod命令時(shí)蛔翅,這個(gè)組件將被激活。它包括了所有實(shí)用CocoaPods的功能位谋,并且還能調(diào)用其他gem包來(lái)執(zhí)行任務(wù)山析。
CocoaPods / Core:Core gem提供了與CocoaPods相關(guān)的文件(主要是podfile和podspecs)的處理。
Podfile:該文件用于配置項(xiàng)目所需要的第三方庫(kù)掏父,它可以被高度定制笋轨。本文中我們主要在這里做動(dòng)作。
Podspec:該文件描述了一個(gè)庫(kù)將怎樣被添加進(jìn)工程中。.podspec文件可以標(biāo)識(shí)該第三方庫(kù)所需要的源碼文件爵政、依賴庫(kù)仅讽、編譯選項(xiàng),以及其他第三方庫(kù)需要的配置钾挟。
Cocoapods安裝步驟
1洁灵、升級(jí)Ruby環(huán)境 (如果你確定當(dāng)前使用電腦的 ruby 版本是最新的就不需要再次升級(jí))
終端輸入:$gem update --system
此時(shí)會(huì)出現(xiàn)
ERROR: While executing gem ... (Gem::FilePermissionError)
You don‘t have write permissions for the
/Library/Ruby/Gems/2.0.0 directory.
zijingMacBook-Pro:~ shiyunlei$ sudo gem update —system
這個(gè)是因?yàn)槟銢]有權(quán)限去更新Ruby
這個(gè)時(shí)候你可以在終端使用:$sudo gem update —system來(lái)進(jìn)行升級(jí)
這個(gè)時(shí)候表示Ruby升級(jí)結(jié)束。
2掺出、安裝CocoaPods時(shí)我們要訪問cocoapods.org徽千,該網(wǎng)站可能被我們大天朝墻了,這樣下載安裝可能會(huì)是龜速汤锨,幸好我們可以用淘寶的Ruby鏡像來(lái)訪問該網(wǎng)站双抽,方法如下:
1、gem sources --remove?https://gems.ruby-china.org/
2闲礼、gem sources -a?https://gems.ruby-china.com
3. ?等待添加完成
$ gem sources -l 查看當(dāng)前源地址牍汹。
添加成功嘗試安裝
sudo gem install fastlane --verbose
sudo gem install -n /usr/local/bin cocoapods --pre
升級(jí) CocoaPod
如果報(bào)錯(cuò)可以參考:[CocoaPods的安裝及常見錯(cuò)誤及解決方案](http://www.reibang.com/p/ee19d12a4769)
一切暢通無(wú)阻!
(以上網(wǎng)址可能以后會(huì)有改變,望讀者在使用時(shí)查詢下最新的地址,當(dāng)然本人也會(huì)持續(xù)更新)
可以使用下面的命令(紅色部分)查看是否更換鏡像成功(如下圖所示):
安裝成功如下:
4 .查看 Cocoapods 版本: ?pod --version
5. 安裝Cocoapods 倉(cāng)庫(kù), 換源安裝 repo
>移除原倉(cāng)庫(kù)鏡像
pod repo remove master
>使用清華源安裝到本地 cd ~/.cocoapods/repos/master
git clone https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git?
>最后需要setup一下更新本地倉(cāng)庫(kù):?pod setup
>查看倉(cāng)庫(kù)信息
pod repo
注意: ?使用的時(shí)候?Podfile文件頭部添加 換源后可以忽略
source https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git
6位仁、使用search命令搜索類庫(kù)名:
$pod search AFNetworking
如果CocoaPods支持柑贞,將會(huì)輸出搜索到的所有類庫(kù)版本和信息,以及在Podfile中配置的寫法聂抢,終端返回信息如下:
-> AFNetworking (2.3.1)
A delightful iOS and OS X networking framework.
pod ‘AFNetworking‘, ‘~> 2.3.1’(這個(gè)語(yǔ)句是需要在編輯Podfile的時(shí)候輸入的命令钧嘶,即是如何安裝下載相關(guān)類庫(kù)的指令)
- Homepage:https://github.com/AFNetworking/AFNetworking
- Source:https://github.com/AFNetworking/AFNetworking.git
- Versions: 2.3.1, 2.3.0, 2.2.4, 2.2.3, 2.2.2, 2.2.1, 2.2.0,
2.1.0,
2.0.3, 2.0.2, 2.0.1, 2.0.0, 2.0.0-RC3, 2.0.0-RC2, 2.0.0-RC1,
1.3.4, 1.3.3,
1.3.2, 1.3.1, 1.3.0, 1.2.1, 1.2.0, 1.1.0, 1.0.1, 1.0, 1.0RC3,
1.0RC2, 1.0RC1,
0.10.1, 0.10.0, 0.9.2, 0.9.1, 0.9.0, 0.7.0, 0.5.1 [master repo]
- Sub specs: - AFNetworking/Serialization (2.3.1) -
AFNetworking/Security (2.3.1) - AFNetworking/Reachability
(2.3.1) -
AFNetworking/NSURLConnection (2.3.1) - AFNetworking/NSURLSession
(2.3.1)
- AFNetworking/UIKit (2.3.1)
-> AFNetworking+AutoRetry (0.0.5)
Auto Retries for AFNetworking requests
pod ‘AFNetworking+AutoRetry‘, ‘~> 0.0.5‘
- Homepage:https://github.com/shaioz/AFNetworking-AutoRetry
- Source:https://github.com/shaioz/AFNetworking-AutoRetry.git
- Versions: 0.0.5, 0.0.4, 0.0.3, 0.0.2, 0.0.1 [master repo]
5、需要在工程中創(chuàng)建一個(gè)Podfile文件琳疏,
使用命令:
$cd /Users/shiyunlei/Desktop/CocoapodsSample(進(jìn)入工程目錄有决,cd后面的是工程的路徑)
$ touch Podfile(創(chuàng)建Podfile文件)
然后使用vim編輯Podfile文件,使用命令:
$ vim Podfile
進(jìn)入如下界面
然后緊接著按鍵盤上的“i”鍵空盼,變成如下狀態(tài)书幕,這個(gè)時(shí)候可以對(duì)Podfile文件進(jìn)行編輯:
1 target '項(xiàng)目名稱' do
2
3 pod 'SVProgressHUD','~> 1.1.3'
4 pod 'AFNetworking','~> 2.6.0'
5 pod 'IQKeyboardManager'
6 pod 'Masonry', '~> 0.6'
7 pod 'FDFullscreenPopGesture', '~> 1.1'
8 pod 'SDCycleScrollView','~> 1.3'
9 pod 'SDWebImage', '~> 3.7.3'
10 pod 'MJRefresh'
11 pod 'HMSegmentedControl'
12
13 end
在編輯完成后按“esc”,
在按“:”,這個(gè)時(shí)候輸入wq,點(diǎn)擊回車揽趾,保存并退出台汇。
這個(gè)時(shí)候打開Podfile文件就會(huì)看到里面添加了剛才在終端輸入的一行語(yǔ)句,如下圖
然后在終端輸入命令安裝相應(yīng)的第三方類庫(kù)
$pod install
因?yàn)檫@個(gè)過程需要下載相應(yīng)的類庫(kù)篱瞎,所以時(shí)間和網(wǎng)速有關(guān)苟呐。
安裝成功之后截圖如下:
這個(gè)時(shí)候會(huì)看到之后打開工程都需要從類型為工程名.xcworkspace文件打開。
常用命令總結(jié)
//? 創(chuàng)建默認(rèn)的 Podfile
$ pod init
//? 第一次使用安裝框架
$ pod install
//? 安裝框架俐筋,不更新本地索引牵素,速度快
$ pod install --no-repo-update
終端命令: control + C 取消上一次操作;
//? 今后升級(jí)、添加澄者、刪除框架笆呆,或者框架不好用都使用這個(gè)命令
$ pod update
//? 更新框架请琳,不更新本地索引,速度快
$ pod update --no-repo-update
//? 搜索框架
$ pod search XXX
//? 幫助
$ pod --help
}
每次在更新CocoaPods的Specs時(shí)候都會(huì)特別慢赠幕,很容易失敗俄精,這里給差一個(gè)可以縮短是時(shí)間的方法
cocoapods 的 sepcs 文件是放在 :~/.cocoapods/repos/
cd 到該目錄時(shí)直接執(zhí)行:git clone https://github.com/CocoaPods/Specs.git master
這種方式會(huì)特別耗時(shí),而且網(wǎng)速差的時(shí)候基本不可能下載成功 榕堰!
第一種解決辦法:
可以終端執(zhí)行:git clone --depth=1 https://github.com/CocoaPods/Specs.git master
其實(shí)無(wú)需全部 clone 下來(lái)嘀倒,可以只 clone 最近一個(gè) commit 的全部代碼就可以;如此能夠至少縮短一半的時(shí)間 局冰!
第二種解決辦法:github下載Specs