今年是我畢業(yè)的第一個(gè)年頭,現(xiàn)在的我還有夢(mèng)想腺怯,只是卻很少有時(shí)間再做夢(mèng),上半年開(kāi)發(fā)的新項(xiàng)目上線了一段時(shí)間了川无,前幾個(gè)周做了幾次更新呛占,最近總算開(kāi)始有些時(shí)間,想著把之前的東西總結(jié)一下懦趋,至少在以后給自己提供一些幫助晾虑,只是時(shí)間隔了這么久,很多東西的感覺(jué)和領(lǐng)悟也記不得了仅叫,想起什么寫什么帜篇,權(quán)當(dāng)給以后的自己留下一份小工具單了。
現(xiàn)在來(lái)寫第一部分诫咱,俗話說(shuō)笙隙,萬(wàn)事開(kāi)頭難,思來(lái)想去確實(shí)不知道從哪里開(kāi)始寫坎缭,剛好上周末時(shí)候蛋蛋來(lái)找我問(wèn)CocoaPods的使用竟痰,實(shí)在他來(lái)的突然签钩,也沒(méi)給他說(shuō)明白,就從這里開(kāi)始入手吧凯亮。
1.關(guān)于CocoaPods
我們?cè)陂_(kāi)發(fā)過(guò)程中肯定會(huì)用到很多第三方庫(kù)边臼,這些庫(kù)或者框架還有可能會(huì)依賴于其他的庫(kù)和框架,每次都要手動(dòng)導(dǎo)入假消,還要注意版本兼容性柠并,有時(shí)還需要配置環(huán)境變量,實(shí)在是麻煩富拗,還有可能會(huì)出錯(cuò)導(dǎo)致編譯失敗臼予,實(shí)在是惡心。
但是沒(méi)有啥辦法啃沪,大神們也許都是自己封裝庫(kù)和框架粘拾,但是對(duì)于我這種小菜,還是需要使用大量的第三方來(lái)增加我的開(kāi)發(fā)效率创千。
好在有了CocoaPods來(lái)做項(xiàng)目依賴工具缰雇。
2.安裝CocoaPods
開(kāi)始學(xué)習(xí)使用的時(shí)候,網(wǎng)上書上都說(shuō)了好多東西追驴,更新Ruby環(huán)境械哟,換源之類的,我實(shí)際使用時(shí)倒是很少遇到此類問(wèn)題殿雪,所以簡(jiǎn)單記錄一下使用暇咆。
第一步:找到終端這個(gè)自帶的應(yīng)用打開(kāi)。
第二步:執(zhí)行指令:$ sudo gem install cocoapods
第三步:上一指令運(yùn)行成功后丙曙,執(zhí)行指令:$ pod setup
這樣其實(shí)就可以了爸业,等著從CocoaPods的GitHub庫(kù)下載就可以了。
執(zhí)行第二步的時(shí)候亏镰,書上說(shuō)有的會(huì)出現(xiàn)報(bào)錯(cuò)扯旷,雖然沒(méi)遇到過(guò),不過(guò)萬(wàn)一哪天就見(jiàn)鬼了呢索抓,所以還是記錄一下薄霜。
換源指令:
$ sudo gem source --remove https://rubygems.org/
$ sudo gem source -a https://ruby.taobao.org/
3.使用CocoaPods搜索庫(kù)
這個(gè)大概兩種方法吧,一個(gè)是去網(wǎng)站上搜索纸兔,另一個(gè)就是再終端直接執(zhí)行命令搜索惰瓜。
第一種:網(wǎng)站搜索
網(wǎng)址:https://cocoapods.org/
直接復(fù)制提示框的內(nèi)容到項(xiàng)目里的Podfile文件里就可以了。
第二種:終端搜索
執(zhí)行指令:$ pod search AFNetworking
然后下面就把版本和要寫到Podfile的東西顯示出來(lái)了汉矿。
4.使用CocoaPods
使用網(wǎng)上都是通過(guò)終端或者自己在項(xiàng)目里新建一個(gè)Podfile出來(lái)崎坊,然后按照格式寫,再安裝洲拇,我習(xí)慣讓系統(tǒng)創(chuàng)建出來(lái)奈揍。
第一步:打開(kāi)終端
第二步:執(zhí)行指令:$ cd 你的項(xiàng)目的工程目錄
這里的工程目錄就是*.xcodeproj文件所在的地方曲尸,直接在文件夾找到這里,然后把上一級(jí)的文件夾直接拖到終端里男翰,路徑自己就出來(lái)了另患。
第三步:執(zhí)行指令:$ pod init
指令執(zhí)行成功后,會(huì)自動(dòng)生成一個(gè)Podfile文本文件蛾绎,可以直接打開(kāi)編輯昆箕。
# Uncomment the next line to define a global platform for your project
platform :ios, '9.0'
target 'Test' do
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
# use_frameworks!
# Pods for Test
pod 'AFNetworking', '~> 3.0.4'
end
再do和end之間的地方寫你要導(dǎo)入的第三方的名稱和版本號(hào)就可以了,這里用的Objective-C租冠,所以就使用的靜態(tài)鏈接庫(kù)形勢(shì)鹏倘。
第四步:執(zhí)行指令:$ pod install
就可以了。
5.添加新的依賴庫(kù)
第一步:執(zhí)行指令:$ pod setup
習(xí)慣性先更新一下
第二步:打開(kāi)Podfile文件顽爹,修改do到end之間的內(nèi)容纤泵,保存。
第三步:執(zhí)行指令:$ pod install
又可以了镜粤。
6.其他的
1.使用CocoaPods之后以后記得打開(kāi)項(xiàng)目要打開(kāi)那個(gè)白色的*xcworkspace文件捏题。
2.如果項(xiàng)目中導(dǎo)入頭文件時(shí)候找不到的話,需要設(shè)置一下路徑
選擇工程Target -> Build Settings -> 搜索header,找到"User Header Search Paths" -> 新增一個(gè)值"$(PODS_ROOT)",并且選擇”recursive”肉渴,這樣X(jué)code就會(huì)在項(xiàng)目目錄中遞歸搜索文件且會(huì)自動(dòng)找到Pods文件,頭文件自動(dòng)補(bǔ)齊功能馬上就好使了公荧。
7.關(guān)于pod的install和update的問(wèn)題
對(duì)于初學(xué)者來(lái)說(shuō),使用 pod install 或者 pod update 并不會(huì)影響大局黄虱,所以有的人就習(xí)慣了一直沿用自己的更新方式。下面就簡(jiǎn)單介紹一下這兩種更新方式的區(qū)別庸诱。
(1)pod install:
這個(gè)是第一次在工程里面使用pods的時(shí)候使用捻浦,并且,也是每次你編輯你的Podfile(添加桥爽、移除朱灿、更新)的時(shí)候使用。
每次運(yùn)行pod install命令的時(shí)候钠四,在下載盗扒、安裝新的庫(kù)的同時(shí),也會(huì)把你安裝的每個(gè)庫(kù)的版本都寫在了Podfile.lock文件里面缀去。這個(gè)文件記錄你每個(gè)安裝庫(kù)的版本號(hào)侣灶,并且鎖定了這些版本。
當(dāng)你使用pod install它只解決了pods里面缕碎,但不在Podfile.lock文件里面的那些庫(kù)之間的依賴褥影。對(duì)于在Podfile.lock里面所列出的那些庫(kù),會(huì)下載在Podfile.lock里面明確的版本咏雌,并不會(huì)去檢查是否該庫(kù)有新的版本凡怎。
(2)pod outdated:
當(dāng)你運(yùn)行pod outdated命令校焦,CocoaPods會(huì)列出那些所有較Podfile.lock里面有新版本的庫(kù)(那些當(dāng)前被安裝著的庫(kù)的版本)。這個(gè)意思就是统倒,如果你運(yùn)行pod update PODNAME寨典,如果這個(gè)庫(kù)有新的版本,并且新版本仍然符合在Podfile里的限制房匆,它就會(huì)被更新耸成。
(3)pod update:
當(dāng)你運(yùn)行 pod update PODNAME 命令時(shí),CocoaPods會(huì)幫你更新到這個(gè)庫(kù)的新版本坛缕,而不需要考慮Podfile.lock里面的限制墓猎,它會(huì)更新到這個(gè)庫(kù)盡可能的新版本,只要符合Podfile里面的版本限制赚楚。
如果你運(yùn)行pod update毙沾,后面沒(méi)有跟庫(kù)的名字,CocoaPods就會(huì)更新每一個(gè)Podfile里面的庫(kù)到盡可能的最新版本宠页。
(4)總結(jié):
你應(yīng)該使用pod update PODNAME去只更新某個(gè)特定的庫(kù)(檢查是否有新版本左胞,并盡可能更新到新的版本)。對(duì)應(yīng)的举户,你應(yīng)該使用pod install烤宙,這個(gè)命令不會(huì)更新那些已經(jīng)安裝了的庫(kù)。
當(dāng)你在你的Podfile里面添加了一個(gè)庫(kù)的時(shí)候俭嘁,你應(yīng)該使用pod install躺枕,而不是pod update,這樣既安裝了這個(gè)庫(kù)供填,也不需要去更新其它的已安裝庫(kù)拐云。
你應(yīng)該使用pod update去更新某個(gè)特定的庫(kù),或者所有的庫(kù)(在Podfile的限制中)近她。
同時(shí)叉瘩,記得在commit提交代碼到遠(yuǎn)程倉(cāng)庫(kù)時(shí),帶上Podfile.lock文件粘捎。
8.更新Ruby
有時(shí)候使用 ''pod install''時(shí)會(huì)出現(xiàn)問(wèn)題薇缅。
-bash: /usr/local/bin/pod: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby: bad interpreter: No such file or directory
很簡(jiǎn)單,我們更新下Ruby環(huán)境就好了攒磨。
打開(kāi)終端泳桦,然后:
(1)查看當(dāng)前Ruby版本。
ruby -v
(2)更新Ruby娩缰。
gem sources --remove https://rubygems.org/
gem sources -a https://gems.ruby-china.com/ (把Ruby鏡像指向taobao蓬痒,避免被墻,現(xiàn)已更新為最新)
gem sources -l (用來(lái)檢查使用替換鏡像位置成功)
(3)下載安裝CocoaPods。
sudo gem install cocoapods