CocoaPods1.4.0 安裝使用詳解

CocoaPods是OS X和iOS下的一個(gè)第三類庫管理工具,通過CocoaPods工具我們可以為項(xiàng)目添加被稱為“Pods”的依賴庫驳糯,輕松管理第三方庫的版本东抹。

CocoaPods安裝步驟

1. 查看Ruby版本帕识,升級(jí)Ruby環(huán)境

CocoaPods是基于ruby ecosystem的潜腻,需要ruby環(huán)境,使用ruby的gem命令咖祭。所以我們的系統(tǒng)要有ruby環(huán)境掩宜。然而Mac系統(tǒng)默認(rèn)會(huì)安裝好ruby環(huán)境∶春玻可在終端ruby -v查看ruby版本:
先查看一下ruby的版本

//查看ruby版本
ruby -v 或者 ruby --version
//輸出信息
ruby 2.3.3p222 (2016-11-21 revision 56859) [universal.x86_64-darwin17]

看能不能直接升級(jí)系統(tǒng)的gem
gem update --system
如果不行牺汤,看能不能直接更新rubygems
sudo gem install rubygems-update
如果失敗

ERROR:  While executing gem ... (Errno::EPERM)
    Operation not permitted @ rb_sysopen - /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/gem

則執(zhí)行
sudo gem install -n /usr/local/bin cocoapods

2. 更換Ruby鏡像

gem sources -l查看ruby源

8089AA51-4E5B-4014-8A68-1E0943FCDFD9.png

發(fā)現(xiàn)這是國外的源,在中國是被屏蔽了的浩嫌,所以要替換為國內(nèi)的源
移除國外的源gem sources --remove https://rubygems.org/
添加國內(nèi)的源gem sources -a https://gems.ruby-china.org/
現(xiàn)在.org停止訪問了檐迟,要換成gem sources -a https://gems.ruby-china.com/
image.png

gem sources -l查看是否替換成功

*** CURRENT SOURCES ***

        https://gems.ruby-china.org/
3. 安裝CocoaPods

sudo gem install cocoapods
報(bào)錯(cuò)1:
ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /usr/bin directory.
說明是一些系統(tǒng)權(quán)限的原因,換成
sudo gem install -n /usr/local/bin cocoapods就行了码耐。

932A9DC9-A623-457E-95AB-14611FD45C90.png

錯(cuò)誤2:
ERROR: Error installing cocoapods:
ERROR: Failed to build gem native extension.
解決方案一: https://stackoverflow.com/questions/20939568/error-error-installing-cocoapods-error-failed-to-build-gem-native-extension
沒有安裝brew的追迟,自己搜索安裝方法安裝就行,這里不再贅述骚腥。
解決方案二: https://blog.csdn.net/a892445213/article/details/104837529
注意: 安裝完rvm后敦间,要重新開啟一個(gè)終端,rvm命令才生效束铭。

目前我使用方案二才解決的問題廓块。

4. 更新索引倉庫

pod setup把最新的類庫信息拉取到本地spec文件,因?yàn)镃ocoaPods每次查找類庫是從本地查找的契沫,如果要保持查找到的類庫是最新的带猴,需要更新索引倉庫。這個(gè)過程會(huì)比較慢懈万。
然后你會(huì)看到出現(xiàn)了Setting up CocoaPods master repo拴清,卡住不動(dòng)了,說明Cocoapods在將它的信息下載到 ~/.cocoapods里会通。 你可以command+n新建一個(gè)終端窗口口予,執(zhí)行cd ~/.cocoapods/進(jìn)入到該文件夾下,然后執(zhí)行du -sh *來查看文件大小涕侈,每隔幾分鐘查看一次苹威,這個(gè)目錄最終大小是900多M(我的是930M) 當(dāng)出現(xiàn)Setup completed的時(shí)候說明已經(jīng)完成了。

66BE7170-B519-4E12-9670-DA77EE7082FB.png

5. 查看pod版本

pod --version

6. 查找第三方庫

輸入pod search AFNetworking驾凶,則能查找到相應(yīng)第三方庫牙甫,按q即可退出。如下:

FBEC6FEA-035B-4BF4-9BE5-0F05753D30AA.png

如果搜索不到调违,可執(zhí)行如下兩種方案:

image.png

解決方案一:
直接找個(gè)demo窟哺,執(zhí)行pod init,生成pod文件之后技肩,雙擊打開Podfile文件且轨,隨便填寫一個(gè)庫進(jìn)去,如 pod 'SnapKit', '~> 5.0.0'虚婿,然后執(zhí)pod install旋奢,等這個(gè)庫安裝好之后,再去執(zhí)行pod search xxx 命令然痊,這時(shí)候所有庫都能搜到了至朗。

解決方案二:
1、請先進(jìn)行:pod setup
2剧浸、再清空一下搜索索引锹引,讓pod重建索引:
rm ~/Library/Caches/CocoaPods/search_index.json
這是因?yàn)橹皃od search的時(shí)候生成了緩存文件search_index.json
然后再次輸入pod search AFNetworking進(jìn)行搜索

7. 創(chuàng)建Podfile文件

新建一個(gè)工程,cd到工程根目錄下唆香,pod init會(huì)創(chuàng)建一個(gè)podfile文件嫌变,
vim Podfile,按i進(jìn)入編輯模式躬它,ESC退出編輯腾啥,然后冒號(hào),再wq就可以退出podfile文件了冯吓。
雙擊podfile文件倘待,直接粘貼第三方庫內(nèi)容進(jìn)去,保存桑谍。
用cocoapods 導(dǎo)入swift 框架延柠,必須要 use_frameworks!。
use_frameworks!使用 dynamic frameworks 來取代 static libraries 方式.

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '10.0'
use_frameworks!

target 'SwiftUIDemo' do
pod 'MJRefresh', '~> 3.1.15.3'
pod 'Alamofire', '~> 4.7.1'
pod 'SDWebImage', '~> 4.3.3'
end
8. 安裝第三方庫

pod install安裝所有再podfile文件中的類庫锣披,如圖

C6DE5A21-86D1-4540-AE1F-8C2BD8645A08.png

執(zhí)行完成之后贞间,工程根目錄下就會(huì)出現(xiàn)一個(gè).xcworkspace的文件,點(diǎn)擊就能打開工程了雹仿。

可能遇到的錯(cuò)誤:
1. fatal: the remote end hung up unexpectedly fatal: early EOF fatal: index-pack failed
pod install 報(bào)錯(cuò)

[!] Error installing ZXingObjC
[!] Failed to download 'ZXingObjC': [!] /usr/bin/git clone https://github.com/zxingify/zxingify-objc.git /var/folders/v6/439mq3hd2nxdx0lgjv96gct00000gn/T/d20210516-8148-91hem9 --template=
Cloning into '/var/folders/v6/439mq3hd2nxdx0lgjv96gct00000gn/T/d20210516-8148-91hem9'...
error: RPC failed; curl 56 LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 54
fatal: the remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

或 git clone --recurse-submodules xxx 時(shí)失敗報(bào)錯(cuò)

remote: Compressing objects: 100% (2725/2725), done.
fatal: the remote end hung up unexpectedly5.43 MiB | 149.00 KiB/s
fatal: early EOF
fatal: index-pack failed

解決方案一:
這里貼了幾種網(wǎng)上的解決方式 (有沒有效不知道增热,畢竟我沒用到這些方式解決)
https://www.cnblogs.com/li923/p/13277725.html
https://www.cnblogs.com/new0801/p/6175788.html
https://stackoverflow.com/questions/21277806/fatal-early-eof-fatal-index-pack-failed
解決方案二:
重新克隆一遍,就ok了胧辽【穑可能是網(wǎng)絡(luò)問題(網(wǎng)上也有說是網(wǎng)絡(luò)問題的)。
目前我就是用這種方式解決的邑商。

9. 查看項(xiàng)目中引入庫的版本號(hào)

1摄咆、打開終端凡蚜,cd命令切換到項(xiàng)目中的Podfile.lock文件目錄下(一般也就是項(xiàng)目根目錄),
執(zhí)行命令:cat Podfile.lock 即可吭从。
2朝蜘、也可以用文本方式打開 Podfile.lock 文件。


image.png


******* 擴(kuò)展 *******

1涩金、 再swift項(xiàng)目中引入OC庫谱醇,需要?jiǎng)?chuàng)建一個(gè)橋接文件

1. command + n 選擇Header File,取一個(gè)名字步做,比如BridgingHeader.h
2.配置橋接文件路徑(路徑也可以在前面加上$(SRCROOT)/作為相對路徑)副渴,如圖:

18830CF8-DB53-409B-88F8-E5C2AE89661D.png

2 、配置Search Paths

我們在橋接文件導(dǎo)入第三方庫頭文件的時(shí)候全度,發(fā)現(xiàn)報(bào)錯(cuò)煮剧,提示找不到頭文件,這是因?yàn)閜od的文件和橋接header文件不是在同一個(gè)目錄下面讼载,所以需要配置User Header Search Paths轿秧。
在target->Build Setting里面找到search Paths,雙擊User Header Search Paths后面空白的地方,設(shè)置目錄的路徑${SRCROOT},然后選擇后面的recursive咨堤,如圖:


image.png

這樣菇篡,在橋接文件里就可以成功的導(dǎo)入第三方庫的頭文件了。

錯(cuò)誤:

用Xcode10和pod1.5.3一喘,報(bào)錯(cuò)
RuntimeError - [!] Xcodeproj doesn't know about the following attributes {"inputFileListPaths"=>[], "outputFileListPaths"=>[]} for the 'PBXShellScriptBuildPhase' isa.
解決方案:(https://stackoverflow.com/questions/52199554/cocoapods-with-xcode-10-runtimeerror-xcodeproj-doesnt-know-about-the-following

E97F4AC0-61EF-4A1F-808B-74E60FDA94EF.png

如果輸入sudo gem install cocoapods --pre執(zhí)行失敗驱还,可以輸入sudo gem install -n /usr/local/bin cocoapods --pre,如下:
DABEE211-8304-4BAF-A0C2-57EAEA683B72.png

ruby官網(wǎng):https://gems.ruby-china.com/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末凸克,一起剝皮案震驚了整個(gè)濱河市议蟆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌萎战,老刑警劉巖咐容,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蚂维,居然都是意外死亡戳粒,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門虫啥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蔚约,“玉大人,你說我怎么就攤上這事涂籽∑凰睿” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長树枫。 經(jīng)常有香客問我直焙,道長,這世上最難降的妖魔是什么砂轻? 我笑而不...
    開封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任箕般,我火速辦了婚禮,結(jié)果婚禮上舔清,老公的妹妹穿的比我還像新娘。我一直安慰自己曲初,他們只是感情好体谒,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著臼婆,像睡著了一般抒痒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上颁褂,一...
    開封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天故响,我揣著相機(jī)與錄音,去河邊找鬼颁独。 笑死彩届,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的誓酒。 我是一名探鬼主播樟蠕,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼靠柑!你這毒婦竟也來了寨辩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬榮一對情侶失蹤歼冰,失蹤者是張志新(化名)和其女友劉穎靡狞,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體隔嫡,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡甸怕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了畔勤。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蕾各。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖庆揪,靈堂內(nèi)的尸體忽然破棺而出式曲,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布吝羞,位于F島的核電站兰伤,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏钧排。R本人自食惡果不足惜敦腔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望恨溜。 院中可真熱鬧符衔,春花似錦、人聲如沸糟袁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽项戴。三九已至形帮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間周叮,已是汗流浹背辩撑。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留仿耽,地道東北人合冀。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像氓仲,于是被迫代替她去往敵國和親水慨。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • CocoaPods 是什么敬扛? CocoaPods 是一個(gè)負(fù)責(zé)管理 iOS 項(xiàng)目中第三方開源庫的工具晰洒。CocoaPo...
    朝洋閱讀 25,679評(píng)論 3 51
  • 項(xiàng)目組件化、平臺(tái)化是技術(shù)公司的共同目標(biāo)啥箭,越來越多的技術(shù)公司推崇使用pod管理第三方庫以及私有組件谍珊,一方面使項(xiàng)目架構(gòu)...
    swu_luo閱讀 21,749評(píng)論 0 39
  • 9/29 23:50 轉(zhuǎn)眼已度過了一月,但我仍然沒從剛畢業(yè)的感覺中脫離出來急侥,好像這都是夢砌滞。慢慢相處下來,一些事情有...
    七月飛雪閱讀 221評(píng)論 0 1
  • 北風(fēng)寒坏怪,北風(fēng)寒贝润,風(fēng)寒人心暖。 俏佳人铝宵,情緣到打掘,今生一世花月圓华畏。 今朝醉,明日情尊蚁,廝守一生至永恒亡笑。 北風(fēng)寒,北風(fēng)寒横朋,...
    池灬魚閱讀 488評(píng)論 0 2
  • 李娟《冬牧場》 李娟給人的感覺很像三毛仑乌,知性美(?)女琴锭,異域風(fēng)情晰甚,身邊故事,生活情趣决帖。 區(qū)別是压汪,埃及撒哈拉和新疆阿...
    框框之上閱讀 551評(píng)論 0 1