引言:CocoaPods 就是為iOS程序提供的依賴管理工具谐宙,CocoaPods有什么作用呢,想象一下,我們創(chuàng)建一個(gè)工程墅茉,要使用很多第三方文件,我們要把很多第三方從本地導(dǎo)入到我們的工程目錄呜呐,然后倒入各種框架就斤,設(shè)置路徑等。和其他人一同完成同一個(gè)項(xiàng)目的時(shí)候蘑辑,和代碼的時(shí)候因?yàn)楦鞣N路徑洋机,第三方報(bào)錯(cuò),那酸爽洋魂。而CocoaPods就是幫我們完成這些繁瑣配置的管理工具绷旗,我們只需要?jiǎng)?chuàng)建工程的時(shí)候生成一下Podfile 然后填入使用的第三方,CocoaPods就幫我們完成了這一切副砍。CocoaPods
搭建Ruby下載環(huán)境:CocoaPods是根據(jù)Ruby語言編寫的 所以要從Ruby的默認(rèn)源去下載源文件
- 查詢Ruby源:
gem source -l
注:https://rubygems.org/ 是墻外的源 需要更換為國內(nèi)的源 - 移除Ruby源:
gem source -r
[要移除的Ruby源] - 添加Ruby源:
gem source -a
[添加Ruby源地址] 注:需要為https 格式 http不可以
安裝:環(huán)境搭建完成衔肢,就可以從Ruby源處進(jìn)行下載
- 下載cocoaPods安裝包:
sudo gem install cocoapods
注:需要輸入 本地主機(jī)(即安裝cocoapods的電腦)的管理員密碼 不是linux的密碼 - 進(jìn)行解壓安裝:pod setup
安裝成功
遇到的問題 :
-
master 文件遇到問題:
解決方法:如圖紅框部分 為官方給我們的解決方法 因?yàn)槲覀冊(cè)趬?nèi) ,而這個(gè)默認(rèn)解決方法是墻外的豁翎,所以我們要使用另一種方法
- 查看本地是否存在 master:
pod repo
- 移除master:
pod repo remove master
- 從國內(nèi)源處重新下載master:
pod repo add master https://gitcafe.com/akuandev/Specs.git
- 執(zhí)行更新:
pod repo update
-
找不到Xcode:
出錯(cuò)原因分析:Xcode路徑有問題 一般是電腦安裝了多個(gè)Xcode 需要找到安裝到那個(gè)Xcode
解決方法:找到要安裝到的Xcode 顯示包內(nèi)容 打開Content 下的Developer 根據(jù)此時(shí)路徑設(shè)置
例如:/Applications/Xcode.app/Contents/Developer
sudo xcode-select -switch Xcode路徑 - 版本問題
[!] Unable to satisfy the following requirements:
- *** required by 'Podfile'
- *** required by 'Podfile.lock'
原因: 第三方版本需要更新角骤,Podfile需要更新
解決方案:pod update --verbose
4.gem版本低
解決方法:
sudo gem update --system
使用CocoPods:
1.創(chuàng)建一個(gè)要使用CocoaPods的工程 然后關(guān)閉
2.在終端下找到工程目錄(一般為有.xcodeproj 工程文件的目錄)
3.在目錄下使用pod init
命令創(chuàng)建Podfile文件
注:此文件用于設(shè)置工程中需要使用的第三方信息
4.在終端下 使用 pod search [要查詢的第三方關(guān)鍵詞]
查詢第三方信息
注:紅框內(nèi)為Podfile所需要的第三方信息,使用時(shí)將此信息填入文件(填入時(shí)選Xcode打開文件)
5.根據(jù)Podfile文件中的信息安裝第三方
命令:
pod install --verbose --no-repo-update
參數(shù):
--verbose
提示安裝信息--no-repo-update
不更新索引 反之就是沒有no 更新索引6.進(jìn)入工程心剥,打開.xcworkspace文件 而不是xcodeproj文件邦尊。使用CocoaPods后我們要在.xcworkspace 文件編寫我們的程序。此時(shí)可以看到工程中有個(gè)Pod文件优烧,里面有我們下好的第三方
7.此時(shí)在工程導(dǎo)入第三方蝉揍,發(fā)現(xiàn)只能使用<>導(dǎo)入文件,而不是“”匙隔。我們需要改一下工程配置文件疑苫,讓我們剛下的三方和工程在同一目錄下熏版。
8.當(dāng)工程中使用的第三方更新了,可以在終端下查找新的第三方信息捍掺,重新填寫在Podfile中撼短,之后在終端執(zhí)行更新命令(每次Podfile執(zhí)行更新都要執(zhí)行該命令)
命令:
pod update --verbose --no-repo-update
參數(shù):參考 install
補(bǔ)1:分享一個(gè)CocoaPods的第三方,這個(gè)三方可以避免終端的繁瑣操作挺勿,直接在Xcode中就可以實(shí)現(xiàn)第三方的更新安裝曲横,但是要知道第三方的具體信息。和終端的查詢命令相互結(jié)合可以達(dá)到更好的效果(前提是配置好CocoaPods)不瓶。
下載網(wǎng)址:https://github.com/kattrali/cocoapods-xcode-plugin
安裝過程與其他插件一樣禾嫉,注意安裝之后要把Xcode強(qiáng)制退出之后才能使用,并且只能在之后新建的工程使用蚊丐,以前的工程是不能使用的熙参。
使用:
- 創(chuàng)建Podfile文件
- 初始化pod 對(duì)應(yīng)終端就是下載第三方的操作
- 更新版本(當(dāng)版本更新時(shí)再執(zhí)行操作)
補(bǔ)2: 關(guān)于Podfile.lock
當(dāng)你執(zhí)行pod install之后,除了 Podfile 外麦备,CocoaPods 還會(huì)生成一個(gè)名為Podfile.lock的文件孽椰,Podfile.lock 應(yīng)該加入到版本控制里面,不應(yīng)該把這個(gè)文件加入到.gitignore中凛篙。因?yàn)镻odfile.lock會(huì)鎖定當(dāng)前各依賴庫的版本黍匾,之后如果多次執(zhí)行pod install 不會(huì)更改版本,要pod update才會(huì)改Podfile.lock了呛梆。這樣多人協(xié)作的時(shí)候锐涯,可以防止第三方庫升級(jí)時(shí)造成大家各自的第三方庫版本不一致。
此篇為學(xué)習(xí)筆記填物,其中參考了其他大神的blog纹腌,本人加以整理,僅為學(xué)習(xí)研究融痛;
參考blog:
http://www.reibang.com/p/44c894b69cf6
作者 :暮落晨曦
http://blog.devtang.com/blog/2014/05/25/use-cocoapod-to-manage-ios-lib-dependency/
作者:唐巧