一、概要
iOS開發(fā)時(shí),項(xiàng)目中會(huì)引用許多第三方庫(kù),CocoaPods(https://github.com/CocoaPods/CocoaPods)可以用來(lái)方便的統(tǒng)一管理這些第三方庫(kù)。
二、安裝
由于網(wǎng)上的教程基本都大同小異,但細(xì)節(jié)之處還不是很完善,所以借機(jī)會(huì)在這里補(bǔ)充下:
注:要使用CocoaPods,那就要下載安裝它,而下載安裝CocoaPods需要Ruby環(huán)境
1、Ruby環(huán)境搭建
當(dāng)前安裝環(huán)境為Mac mini 10.8.5。Mac ?OS本身自帶Ruby,但還是更新一下保險(xiǎn),因?yàn)槲业谝淮伟惭b在沒有更新Ruby的情況下就失敗了。
a 查看下當(dāng)前ruby版本:打開終端輸入 ruby -v(確實(shí)安裝了,不過(guò)用這個(gè)版本接下來(lái)工作失敗了,所以更新下ruby)
打開終端,輸入?
?ruby -v ?
回車;
b 更新ruby
終端輸入如下命令(把Ruby鏡像指向taobao,避免被墻,你懂得)
gem sources --remove https://rubygems.org/
gem sources -a https://ruby.taobao.org/(已改為:gem sources -a https://gems.ruby-china.com/)
gem sources -l ?(用來(lái)檢查使用替換鏡像位置成功)
再輸入
gem sources --remove https://rubygems.org/
gem sources -a https://gems.ruby-china.com/
gem sources -l
回車;
2、下載安裝CocoaPods
終端輸入:sudo gem install cocoapods
再輸入
sudo gem install cocoapods
回車;
Installing?ri?documentation?for?cocoapods-0.32.1
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rdoc/rdoc.rb:280:?warning:?conflicting?chdir?during?another?chdir?block
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rdoc/rdoc.rb:287:?warning:?conflicting?chdir?during?another?chdir?block
Done?installing?documentation?for?cocoapods?after?10?seconds
1?gem?installed
這樣就下載安裝好了CocoaPods
3、使用CocoaPods
a ?新建一個(gè)項(xiàng)目,名字PodTest
b? 終端中,cd到項(xiàng)目總目錄(注意:包含PodTest文件夾、PodTest.xcodeproj、PodTestTest的那個(gè)總目錄)
c? 建立Podfile(配置文件)
?cd 到項(xiàng)目總目錄,輸入
vim Podfile
回車;
輸入i,進(jìn)入編輯模式,
回車;
輸入
platform :ios, '8.0'
#use_frameworks!
target '項(xiàng)目名稱' do———————記得改名字
pod 'AFNetworking', '~> 3.0’
end
然后按Esc,并且輸入“:”號(hào)進(jìn)入vim命令模式,然后在冒號(hào)后邊輸入wq
cd到項(xiàng)目總目錄pod install
轉(zhuǎn)載自:blog.csdn.net/showhilllee/article/details/38398119/
今天嘗試用 Cocoapods安裝個(gè)第三方庫(kù).. 輸入pod install, 發(fā)現(xiàn) command not find。
估計(jì)是升級(jí)10.11后Cocoapods被干掉了。
我輸入 sudo gem install cocoa pods 之后,出現(xiàn)如下問題:
ERROR:? While executing gem ... (Gem::DependencyError)
Unable to resolve dependencies: cocoapods requires cocoapods-core (= 0.33.1), claide (~> 0.6.1), cocoapods-downloader (~> 0.6.1), cocoapods-plugins (~> 0.2.0), cocoapods-try (~> 0.3.0), cocoapods-trunk (~> 0.1.1), nap (~> 0.7)
解決方法:sudogem update --system
但是出現(xiàn)了另一個(gè)錯(cuò)誤:
ERROR:? While?executing?gem?...?(Errno::EPERM)
Operationnotpermitted?-?/usr/bin/xcodeproj
在Stackoverflow上找到了解決方法:
在終端中輸入:sudo?nvram?boot-args="rootless=0";?sudo?reboot
然后你的電腦會(huì)重啟
之后再輸入sudo?gem?install?cocoapods?-V
就可以了
不放心的話輸入
pod --version
0.37.2 //顯示出版本就說(shuō)明成功了
但是之后我pod install的時(shí)候又花式出錯(cuò)
[!] Unable to add a source with url `https://github.com/CocoaPods/Specs.Git` named `master`.
You can try adding it manually in `~/.cocoapods/repos` or via `pod repo add`.
我嘗試按提示的方法
pod repo add master https://github.com/CocoaPods/Specs.git
然而還是有錯(cuò)..
[!] /usr/bin/git clone http://git.oschina.NET/akuandev/Specs.git master
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
最后的解決方法:
sudo xcode-select -switch /Applications/Xcode-beta.app/Contents/Developers
后面的地址你可以打開Xcode顯示包內(nèi)容,找到那個(gè)文件夾拖到終端里面比較不容易錯(cuò)。
CocoaPods 0.38.0.beta.2 is available.
To update use: `gem install cocoapods --pre`
[!] This is a test version we'd love you to try.
For more information see http://blog.cocoapods.org
and the CHANGELOG for this version http://git.io/BaH8pQ.
CocoaPods 0.38.0.beta.2 is available.
To update use: `gem install cocoapods --pre`
[!] This is a test version we'd love you to try.
For more information see http://blog.cocoapods.org
and the CHANGELOG for this version http://git.io/BaH8pQ.
最后終于修成正果..
至于一開始輸入 sudo gem installcocoapods 沒反應(yīng)需要修改為淘寶鏡像的問題,請(qǐng)百度Cocoapods參閱其它文章..
轉(zhuǎn)載自:http://blog.csdn.net/NSNirvana/article/details/46873071
1.設(shè)置ruby的軟件源
這是因?yàn)閞uby的軟件源rubygems.org因?yàn)槭褂脕嗰R遜的云服務(wù),被我天朝屏蔽了,需要更新一下ruby的源,過(guò)程如下:
gem sources -l #(查看當(dāng)前ruby的源)
gem sources --remove https://rubygems.org/ #(移除當(dāng)前ruby的源)
gem sources -a https://ruby.taobao.org/ #(設(shè)置當(dāng)前ruby的源為我天朝的)
gem sources -l #(再次查看當(dāng)前ruby的源)
如果Terminal輸出:
*** CURRENT SOURCES ***
https://ruby.taobao.org/
就證明ruby的軟件源已經(jīng)設(shè)置OK了。
2.設(shè)置gem為最新版本
如果gem太老,可以嘗試用如下命令升級(jí)gem:
在Terminal輸入以下命令:
sudo gem update --system
升級(jí)成功后會(huì)提示: Latest version currently installed. Aborting.
3.執(zhí)行安裝CocoaPods命令
注意:OS X 10.11 升級(jí),雖然官方聲稱只是一個(gè)小的升級(jí),但對(duì)于開發(fā)者而言,cocoapods需要重新安裝,但按照以前的安裝方式,在Terminal輸入以下命令:
sudo gem install? cocoapods
如果報(bào)以下錯(cuò)誤:
ERROR:? While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/xcodeproj
解決方案1:
執(zhí)行下面的命令并重啟
sudo nvram boot-args="rootless=0"
sudo reboot
重啟之后, 執(zhí)行這個(gè)命令檢查
sudo gem install cocoapods -V
如果依舊有錯(cuò)誤,使用第二個(gè)方案
解決方案2:
sudo gem install -n /usr/local/bin cocoapods
pod setup
還有一點(diǎn)需要注意,pod setup在執(zhí)行時(shí),會(huì)輸出Setting up CocoaPods master repo,但是會(huì)等待比較久的時(shí)間。這步其實(shí)是 Cocoapods 在將它的信息下載到 ~/.cocoapods目錄下,如果你等太久,可以試著 cd 到那個(gè)目錄,用du -sh *來(lái)查看下載進(jìn)度。
安裝成功后,你會(huì)看到:Setup completed
五、Cocoapods的使用
隨便以一種方式新建一個(gè)名為Podfile的文件放到你的工程根目錄下(不能寫成別的名字,也可以自己在工程根目錄里面直接新建)
Podfile文件內(nèi)容的格式應(yīng)該如下:
platform :ios, '8.0' #(注明你的開發(fā)平臺(tái)以及版本,'8.0'忽略不寫即為最新版本)
pod 'AFNetworking', '~> 2.5.3' #('~> 2.5.3'為版本號(hào),忽略不寫即為最新版本)
pod 'SDWebImage', '~> 3.7.2'
然后在Terminal進(jìn)入工程所在的根目錄(工程根目錄)中執(zhí)行 :
pod install
這樣,AFNetworking和SDWebImage就已經(jīng)下載完成并且設(shè)置好了編譯參數(shù)和依賴,以后使用的時(shí)候切記如下兩點(diǎn):
1.從此以后需要使用Cocoapods生成的 .xcworkspace文件來(lái)打開工程,而不是使用以前的.xcodeproj文件
2.每次更改了Podfile文件,都需要重新執(zhí)行一次pod update命令
添加:
錯(cuò)誤1:
Error fetchinghttp://ruby.taobao.org/:
bad response Not Found 404 (http://ruby.taobao.org/specs.4.8.gz)
解決方案:把安裝流程中 $gem sources -ahttp://ruby.taobao.org/---改為---->$gem sources -ahttps://ruby.taobao.org/
錯(cuò)誤2:
ERROR:? While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/pod
解決方案:蘋果系統(tǒng)升級(jí)OS X EL Capitan后會(huì)出現(xiàn)的插件錯(cuò)誤,將安裝流程 4.安裝CocoaPods 的 (1)sudo gem install cocoapods ——>改為sudo gem install -n /usr/local/bin cocoapods
錯(cuò)誤3:
[!] Unable to satisfy the following requirements: - `AVOSCloud (~> 3.1.6.3)` required by `Podfile`
Specs satisfying the `AVOSCloud (~> 3.1.6.3)` dependency were found, but they required a higher minimum deployment target.
解決方案:安裝流程:Podfile文件 中? platform:ios, ‘6.0’? 后邊的 6.0 是平臺(tái)版本號(hào) ,一定要加上
高德地圖開發(fā)平臺(tái)提供的流程:
1、設(shè)置 ruby 的軟件源。
由于默認(rèn)的 ruby 的軟件源(https://rubygems.org/)被墻阻攔導(dǎo)致 CocoaPods 安裝失敗,因此需要更新一下 ruby 的源。依次執(zhí)行如下命令:
gem sources -l #(查看當(dāng)前ruby的源)
gem sources --remove https://rubygems.org/ #(移除當(dāng)前ruby的源)
gem sources -a https://ruby.taobao.org/ #(設(shè)置當(dāng)前ruby源為淘寶源)
gem sources -l #(再次查看當(dāng)前ruby的源)
顯示如下文字表示更新成功。
*** CURRENT SOURCES ***
https://ruby.taobao.org/
2、升級(jí) gem。
gem 版本較低也可能導(dǎo)致安裝或者升級(jí)失敗,所以需要升級(jí) gem。使用以下命令:
sudo gem update --system
3、安裝 CocoaPods
檢查一下您的 OS X 的版本。
若您的 OS X 版本小于等于 10.11,依次執(zhí)行下面的命令安裝 CocoaPods。
sudo gem install cocoapods
pod setup
大于 10.11,使用如下命令安裝。
sudo gem install -n /usr/local/bin cocoapods
pod setup
注意:安裝過(guò)程可能會(huì)耗時(shí)比較長(zhǎng),也有可能受網(wǎng)絡(luò)狀況影響造成失敗,需要多次嘗試直到成功。