相信很多朋友最近跟我一樣用cocoapods的時(shí)候出現(xiàn)了問題,每次更新cocoapods都會(huì)有一定的改變,需要我們自己修改膛壹,
Cocoapods的安裝
因?yàn)閙ac都是自帶ruby的所以我們只需要根據(jù)下面的步驟來就可以了
1.先升級(jí)Gem
sudo gem update --system
如果顯示
Latest version already installed. Done.
說明 更新成功
2.切換cocoapods的數(shù)據(jù)源
【先刪除,再添加,查看】
gem sources --remove https://rubygems.org/
// gem sources -a https://ruby.taobao.org/(淘寶已經(jīng)不更新了所以這個(gè)不可以使用了拷橘,我們可以使用,下面這個(gè))
gem sources --add https://gems.ruby-china.com #添加國內(nèi)鏡像源
(最新的trunk使用的是 https://cdn.cocoapods.org/)
gem sources -l//查看數(shù)據(jù)源
3.安裝cocoapods
sudo gem install cocoapods
或者使用下面的:
(如10.11系統(tǒng))sudo gem install -n /usr/local/bin cocoapods
4.將Podspec文件托管地址從github切換到國內(nèi)的oschina
【先刪除喜爷,再添加冗疮,再更新】
pod repo remove master
pod repo add master http://git.oschina.net/akuandev/Specs.git
pod repo add master https://gitcafe.com/akuandev/Specs.git
pod repo update
5.設(shè)置pod倉庫
pod setup
如果出現(xiàn)
setup這一步會(huì)很慢或者無限卡 Setting up CocoaPods master repo,這是因?yàn)橐趃ithub下載代碼檩帐,
我這一步一直有問題术幔,查詢網(wǎng)上都說要將specs倉庫鏡像換成gitcafe上的鏡像
或者是 oschina 上的鏡像即:
pod repo remove master
使用源安裝CocoaPods庫
$ pod repo add master https://git.coding.net/CocoaPods/Specs.git
//或者 pod repo add master https://git.oschina.net/akuandev/Specs.git
但是執(zhí)行 pod repo remove master之后老是提示[!] repo master does not exist;然后執(zhí)行 pod repo add master
https://git.coding.net/CocoaPods/Specs.git
之后又會(huì)提示[!] To setup the master specs repo, please run pod setup.
然后就無限卡死這兩步湃密,不知道是因?yàn)閏ocoapods版本的問題還是網(wǎng)絡(luò)的問題诅挑,
最后直接手動(dòng)將代碼git到本地得以解決問題:
git clone https://git.coding.net/CocoaPods/Specs.git ~/.cocoapods/repos/master
1.9.1要是使用下面的來手動(dòng)添加,
git clone https://gitee.com/mirrors/CocoaPods-Specs.git ~/.cocoapods/repos/master
git完成之后如下:
添加完成.png
6.測(cè)試
【如果有版本號(hào)泛源,則說明已經(jīng)安裝成功】
pod --version
7.利用cocoapods來安裝第三方框架
01 進(jìn)入要安裝框架的項(xiàng)目的.xcodeproj同級(jí)文件夾
02 在該文件夾中新建一個(gè)文件podfile (cd到當(dāng)前工程的文件夾 在終端使用touch Podfile命令創(chuàng)建出一個(gè)文件拔妥,然后用文本編輯打開)
03 在文件中告訴cocoapods需要安裝的框架信息
a.該框架支持的平臺(tái)
b.適用的iOS版本
c.框架的名稱
d.框架的版本
具體使用:
cd 項(xiàng)目路徑
pod init #創(chuàng)建默認(rèn)的 Podfile(可跳過)
vim Profile #編輯(沒有會(huì)創(chuàng)建)Profile配置文件
pod install #安裝或刪除第三方庫
pod install --no-repo-update #安裝第三方庫,不更新本地索引
pod update #更新到最新版本或指定版本
例如:
platform :ios, '8.0'
pod 'SDWebImage', '~> 5.0'
platform :ios, '8.0' #支持的iOS版本
target 'Demo' do #指定的項(xiàng)目
pod 'AFNetworking' #要添加的第三方庫名稱及指定版本
end
8.安裝
pod install --no-repo-update下載不需要更新pod
pod update --no-repo-update
如果想搜索的話可以使用 pod search XXX
9.說明
platform :ios, '8.0' 用來設(shè)置所有第三方庫所支持的iOS最低版本
pod 'SDWebImage','~>2.6' 設(shè)置框架的名稱和版本號(hào)
版本號(hào)的規(guī)則:
'>1.0' 可以安裝任何高于1.0的版本
'>=1.0' 可以安裝任何高于或等于1.0的版本
'<1.0' 任何低于1.0的版本
'<=1.0' 任何低于或等于1.0的版本
'~>0.1' 任何高于或等于0.1的版本达箍,但是不包含高于1.0的版本
'~>0' 任何版本没龙,相當(dāng)于不指定版本,默認(rèn)采用最新版本號(hào)
10.使用pod install命令安裝框架后的大致過程:
01 分析依賴:該步驟會(huì)分析Podfile,查看不同類庫之間的依賴情況。如果有多個(gè)類庫依賴于同一個(gè)類庫硬纤,但是依賴于不同的版本解滓,那么cocoaPods會(huì)自動(dòng)設(shè)置一個(gè)兼容的版本。
02 下載依賴:根據(jù)分析依賴的結(jié)果筝家,下載指定版本的類庫到本地項(xiàng)目中洼裤。
03 生成Pods項(xiàng)目:創(chuàng)建一個(gè)Pods項(xiàng)目專門用來編譯和管理第三方框架,CocoaPods會(huì)將所需的框架溪王,庫等內(nèi)容添加到項(xiàng)目中腮鞍,并且進(jìn)行相應(yīng)的配置。
04 整合Pods項(xiàng)目:將Pods和項(xiàng)目整合到一個(gè)工作空間中,并且設(shè)置文件鏈接。
- 有一些框架是不支持pods士八,要在添加之前查看一下how to use有沒有說明,
或者到框架文件里面查看有沒有podspec后綴的文件有的話基本可以使用
在我們使用的時(shí)候 可能會(huì)出現(xiàn)一下錯(cuò)誤 CDN: trunk URL couldn't be downloaded:
截屏2020-04-28上午10.31.53.png
解決方案
- pod repo list 查看一下源列表
- podfile添加source 'xxx', 第一步中你看看到的那個(gè)source,如果使用原來的方法的話 就把第一個(gè)master的url添加到我們podfile里面
source list.png
添加了之后像下圖那樣桥狡,就可以使用像之前那樣正常使用,但是這個(gè)方法感覺不是長(zhǎng)久之計(jì)皱卓,而且我不喜歡在podfile里面添加source這句裹芝,因?yàn)镃ocoaPods默認(rèn)使用CDN,肯定以后會(huì)朝著使用CDN的方向發(fā)展娜汁,這個(gè)方法感覺以后還有出現(xiàn)問題嫂易,所以還是盡早的適應(yīng)CDN的好,畢竟他是為了使我們的開發(fā)更加的方便才推出的掐禁。
添加Source的Podfile.png
成功集成.png
如果我們想使用CDN的需要修改hosts的地址
- 打開終端 執(zhí)行
sudo vi /etc/hosts - 在文件里面添加
199.232.68.133 raw.githubusercontent.com
保存退回終端(1.輸入i怜械,進(jìn)入insert模式編輯文本
esc退出插入模式.2. shift + :wq 保存文件并退出文本編輯模) - 執(zhí)行sudo killall -HUP mDNSResponder
用這個(gè)方法,不需要在podfille文件添加source傅事,集成有點(diǎn)慢缕允,需要耐心等著。 但是以后因該都是這種方法蹭越,如果你想快點(diǎn)的話 就使用第一種在profile添加source的方法
CocoaPods卸載障本;
終端使用
sudo gem uninstall CocoaPods #卸載CocoaPods