? ? ? 每次升級Xcode孽锥,一般會導(dǎo)致Xcode工程里的cocapods失效嚼黔,運(yùn)行工程到處報錯,也沒法添加和引用新的第三方依賴惜辑,這時很多童鞋就一片哀嚎唬涧,媽蛋,臥槽盛撑。碎节。。抵卫。然后一頓狂百度狮荔,google,雖然也不是啥復(fù)雜的問題介粘,但隨便一折騰就是2小時殖氏,難道是自己使用cocapods的姿勢不對,甚至開始懷疑人生姻采,好吧雅采,廢話不多說(其實已經(jīng)廢話了這么多。偎谁。总滩。)時間寶貴,大家且行且珍惜啊巡雨。
首先闰渔,安裝ruby環(huán)境;
? ?taobao 的 ruby 鏡像已經(jīng)失效铐望,替補(bǔ)方案詳情見 https://ruby-china.org/topics/29250
刪除淘寶源 $gem source -r https://ruby.taobao.org to remove
添加原版源 $gem source -a https://rubygems.org/ to read
使用 $gem sources -l查看以下確保只有一個https://rubygems.org/源存在
*** CURRENT SOURCES ***
https://rubygems.org
在https://www.ruby-lang.org/zh_cn/downloads/ 下載好源碼后冈涧,解壓在控制臺cd進(jìn)源碼文件夾根目錄使用命令進(jìn)行安裝
$ ./configure
$ make
$ sudo make install
以上3步全部完成之后 使用$ruby -v看一下當(dāng)前Ruby版本
bogon:ruby-2.4.1 princemei$ gem source
*** CURRENT SOURCES ***
到這一步茂附,ruby環(huán)境算是安裝好了
其次,安裝cocoapods
$sudo gem install cocoapods --pre
如果報錯 :
ERROR: While executing gem ... (Gem::Exception)
Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources? or 前面讓安裝OpenSSL 重新build ruby督弓,or后面是讓使用 http 別用https营曼。
先看一下$openssl version是不是安裝了 OpenSSL
OpenSSL 0.9.8zh 14 Jan 2016恩,有版本愚隧,還挺新的
那就更換源 的地址
刪除 https 源
$gem source -r https://rubygems.org/ to remove
添加 http 源
$gem source -a http://rubygems.org/ to read
確保添加正確
$gem source
*** CURRENT SOURCES ***
http://rubygems.org/
見證奇跡的時刻
$sudo gem install cocoapods --pre
這需要一段時間蒂阱,待安裝成功后,驗證一下是否安裝成功
$ pod --version
1.3.0.beta.2
再次狂塘,就是在Xcode工程的使用录煤。(這里也有些值得注意的地方,比如Podefile文件的編寫)
如果是舊工程荞胡,這建議先刪除原來與pods相關(guān)的文件
在終端里妈踊,cd到你的工程目錄:
$ cd /Users/xxx/xxx
$ vim Podfile
點i進(jìn)入編輯模式,編寫Podfile文件泪漂,例如:
platform:ios,‘8.0’
target YouProjectName‘do
pod 'AFNetworking','~> 3.1.0'
pod 'SDWebImage','~> 3.8.1'
pod 'SVProgressHUD','~> 2.0.3'
pod 'MJExtension','~> 3.0.11'
pod 'MJRefresh','~> 3.1.10'
pod 'DACircularProgress','~> 2.3.1'
end
一定要按官方規(guī)范來寫廊营,不然沒效果,會報錯萝勤。之前可以簡單寫成
?platform:ios,‘6.0’
pod 'AFNetworking'
pod 'SDWebImage'
pod 'SVProgressHUD'
pod 'MJExtension'
pod 'MJRefresh'
pod 'DACircularProgress'
現(xiàn)在不行了露筒,這樣會報錯:
[!] Invalid `Podfile` file: syntax error, unexpected tFID, expecting end-of-input.
[!] Invalid `Podfile` file: syntax error, unexpected keyword_do_block, expecting end-of-input.
官方規(guī)范是 :
platform:ios, ‘x.0’
target YouProjectName‘do
pod 'AFNetworking', '~> 3.1.0'
pod 'SDWebImage', '~> 3.8.1'
。纵刘。邀窃。
end
需要注意的是:platform:ios, ‘x.0’的冒號之間不能有空格,而且 這個pod 'AFNetworking', '~> 3.1.0'? 的? '~> 3.1.0'? 得是用終端命令 pod search AFNetworking 查出來的? 不然就不能正常更新下來? 假哎,還有一些第三方框架對target的iOS的最低版本有要求瞬捕,不能太低,比如更新AFNetworking舵抹,就不能寫ios, ‘6.0’肪虎,不然報錯:[!] The dependency `AFNetworking` is not used in any concrete target. 換成ios, ‘8.0’就萬事大吉鳥??,媽蛋 是不是處處是坑啊惧蛹。扇救。
編輯完畢,按ESC退出香嗓,輸入 :wq 退出
最后迅腔,就是安裝pods了
$ pod install
等一會兒出現(xiàn)類似如下信息就代表創(chuàng)建成功。每次pod install后記得pod update下靠娱。
好了沧烈,你可以去Xcode工程所在目錄里找到Y(jié)ourProjectName.xcworkspace文件雙擊打開工程,愉快地擼代碼了像云,是不是也沒多復(fù)雜靶咳浮B煜Α!R改妗P鲭埂!3颓浮5戎!