一. 什么是 Cocoapods师崎?
CocoaPods是一個(gè)負(fù)責(zé)管理iOS項(xiàng)目中第三方開源庫(kù)的工具,CocoaPods的項(xiàng)目源碼在Github上管理.
開發(fā)iOS項(xiàng)目不可避免地要使用第三方開源庫(kù)砂豌,CocoaPods的出現(xiàn)使得我們可以節(jié)省設(shè)置和更新第三方開源庫(kù)的時(shí)間,在iOS開發(fā)中經(jīng)常會(huì)用到第三方庫(kù)如AFNetworking,SDWebImage等竣蹦,在使用第三方庫(kù)時(shí),你除了要導(dǎo)入源碼外渺鹦,集成這些依賴庫(kù)還需要我們手動(dòng)去配置舀透,還有當(dāng)這些第三方庫(kù)發(fā)生了更新,還需要手動(dòng)去更新項(xiàng)目,這就顯得非常麻煩.CocoaPods就是為了解決這個(gè)問題而生的,通過CocoaPods密任,我們可以將第三方的依賴庫(kù)統(tǒng)一管理起來颜启,配置和更新只需要通過簡(jiǎn)單的幾行命令即可完成.
二. 安裝cocoapods
(1) 升級(jí)Ruby (cocoapods使用Ruby編寫)
$sudo gem update —system
(2)更新Ruby源
首先,檢查一下你的ruby源
$ gem sources -l
默認(rèn)情況下浪讳,終端應(yīng)該返回如下信息:
*** CURRENT SOURCES ***
當(dāng)然這個(gè)源在墻內(nèi)是訪問不到的,因此我們需要?jiǎng)h除此源并添加一個(gè)可以在國(guó)內(nèi)訪問到的鏡像
$ gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/
知道你按照網(wǎng)上寫的為什么不對(duì)嗎缰盏?因?yàn)槟阍诰W(wǎng)上搜到的基本上都是訪問的淘寶鏡像(如下語(yǔ)句) ---不要執(zhí)行!!口猜!
$ gem sources -a http://ruby.taobao.org/
然而淘寶卻已經(jīng)將RubyGems鏡像的管理工作交由RubyChina負(fù)責(zé)
banben.png
并明確指出讓我們使用https://gems.ruby-china.org/
此刻再次查看ruby源
$ gem sources -l
終端返回如下信息:
*** CURRENT SOURCES ***
(3)安裝cocoapods
$ sudo gem install cocoapods
$ pod setup
三. Cocoapods使用
(1) 創(chuàng)建工程cocoapodsDemo
(2) 找到項(xiàng)目所在路徑:
$ cd /users/xbk/Desktop/cocoapodsDemo
(3) 搜索需要的庫(kù)(將配置信息(pod 'AFNetworking', '~> 3.1.0')復(fù)制负溪,然后依次按esc wq鍵退出):
$ pod search afnetworking
(4) 建立podfile文件:
$ touch podfile
(5) 打開podfile文件:
$ open -e podfile
(6) 在打開的podfile中配置文本信息:(復(fù)制第三步查詢到的 pod 'AFNetworking', '~> 3.1.0' )
platform:ios,‘7.0’
target '項(xiàng)目名' do
pod 'AFNetworking', '~> 3.1.0'
end
(7) 在中斷輸入:
$ pod install
(8) 繼續(xù)添加別的第三方庫(kù)
依次執(zhí)行(3)济炎、(5)川抡、(6)、(7)步.
(9) 刪除cocoapods中的一個(gè)或多個(gè)類庫(kù)
platform:ios须尚,‘7.0’
target '項(xiàng)目名' do
pod 'AFNetworking', '~> 3.1.0'
pod 'Masonry', '~> 1.0.2'(直接刪除該行崖堤,如果想降低版本,直接修改1.0.2為你想要的版本)
end
然后執(zhí)行pod install 發(fā)現(xiàn)Masonry被成功刪除
(10) 更新pods中的第三方庫(kù)文件
$ pod update
四. 刪除cocoapods
刪除工程文件夾下的Podfile耐床、Podfile.lock及Pods文件夾
刪除xcworkspace文件
使用xcodeproj文件打開工程密幔,刪除Frameworks組下的 Pods.xcconfig及l(fā)ibPods.a引用
在工程設(shè)置中的Build Phases下刪除Check Pods Manifest.lock及Copy Pods Resources
五. 使用cocoapods過程中你可能遇到的問題
(1) podfile升級(jí)之后到最新版本為1.1.1后,pod里的內(nèi)容必須明確指出所用第三方庫(kù)的target(項(xiàng)目名)咙咽,否則會(huì)出現(xiàn)The dependency '' is not used in any concrete target這樣的錯(cuò)誤
以前錯(cuò)誤的姿勢(shì):
platform:ios老玛,'7.0'
pod 'AFNetworking', '~> 3.1.0'
pod 'Masonry', '~> 1.0.2'
現(xiàn)在正確的姿勢(shì)應(yīng)該是:
platform:ios,'7.0'
target '項(xiàng)目名' do
pod 'AFNetworking', '~> 3.1.0'
pod 'Masonry', '~> 1.0.2'
end
(2) 使用Cocoapods 導(dǎo)入第三方的資源時(shí)钧敞,出現(xiàn)如下警告:
Your Podfile has had smart quotes sanitised. To avoid issues in the future, you should not use TextEdit for editing it. If you are not using TextEdit, you should turn off smart quotes in your editor of choice.
先看看錯(cuò)誤的寫法
platform:ios蜡豹,'7.0'
target ‘項(xiàng)目名’ do(看這里,拼音(文本)浮下的單引號(hào))
pod 'AFNetworking', '~> 3.1.0'
pod 'Masonry', '~> 1.0.2'
end
正確的寫法
platform:ios溉苛,'7.0'
target '項(xiàng)目名' do(看這里镜廉,英文符下的單引號(hào))
pod 'AFNetworking', '~> 3.1.0'
pod 'Masonry', '~> 1.0.2'
end