最詳細(xì)的CocoaPods使用教程,以及常見報(bào)錯(cuò)信息

原文使用鏈接 --- 報(bào)錯(cuò)鏈接

因?yàn)镾wift中命名空間的存在,CocoaPods成為導(dǎo)入第三方的首選,本文詳細(xì)介紹CocoaPods的集成,使用,常見報(bào)錯(cuò)總結(jié)

什么是CocoaPods?

CocoaPods是專門為iOS工程提供對第三方庫的依賴的管理工具,通過CocoaPods,我們可以更方便地管理每個(gè)第三方庫的版本,而且不需要我們做太多的配置。直觀、集中和自動化地管理我們項(xiàng)目的第三方庫。

我們都有這樣的經(jīng)歷,當(dāng)我們添加第三方庫的時(shí)候,需要導(dǎo)入一堆相關(guān)依賴庫,更新的時(shí)候也要刪掉重新導(dǎo)入然后再配置。當(dāng)我們需要更新某個(gè)第三方庫的時(shí)候,我們又要手動移除該庫,導(dǎo)入新的庫,然后再配置。這些是很麻煩且沒有意義的工作。

當(dāng)我們開始使用CocoaPods管理第三方庫后,我們只需要相當(dāng)少的配置,其它的一切都交由CocoaPods來管理即可,我們使用起來就更省心了。

安裝CocoaPods

1.首先更新gem到最新版本,在終端中輸入:$
sudo gem update --system,注意不要把“$”復(fù)制上。等待一會兒會看到:

更新gem
2.刪除自帶的ruby鏡像,終端輸入:gem
sources --remove https://rubygems.org/。
3.添加淘寶的鏡像,終端輸入:gem sources -a https://gems.ruby-china.org/(原來的淘寶鏡像 https://ruby.taobao.org/已經(jīng)不能用了)。
4.可以用gem sources -l 來檢查使用替換鏡像位置成功,結(jié)果應(yīng)該只有 https://gems.ruby-china.org/ 才對。

修改鏡像
5.安裝CocoaPods,終端輸入:sudo
gem install cocoapods。
等待一會兒會看到:

安裝CocoaPods
6.然后配置下CocoaPods,終端輸入:pod
setup。

配置CocoaPods
等待過程可能有點(diǎn)長,成功后會看到:

配置成功
到這里CocoaPods就安裝好了。

查找第三方庫

比如查找MJExtension,終端輸入:pod
search MJExtension,第一次搜索他需要建索引,等待一會兒就可以了。

建索引中
完成后他會自動進(jìn)入一個(gè)新的頁面顯示搜索結(jié)果,上下滑動查看更多,要退出的話按wq就可以了。以后再搜索就不需要建索引了。

查找結(jié)果
引入第三方庫到項(xiàng)目中

我先在桌面上新建一個(gè)Test項(xiàng)目,然后演示把MJExtension導(dǎo)進(jìn)去。
剛開始的文件目錄是這樣的

原始目錄.png
1,首先打開終端,cd到Test路徑下。

Test

2.然后生成并編輯一個(gè)Podfile文件,命令為vim Podfile,要導(dǎo)入的第三方都要在這里面寫上。進(jìn)去后需要先按I鍵進(jìn)入編輯狀態(tài),寫完后按esc,然后按shift+zz(或者先按shift+:,再按wq)就可以保存退出了。下面的動圖里面都有。
Podfile的格式大概如下,其中'Test'為你的target的名字。
platform :ios,'8.0'
target 'Test' do
pod 'MJExtension', '~> 3.0.13'
end
3.安裝,命令為:pod install。

安裝第三方
安裝成功之后,就可以去項(xiàng)目里面使用了?,F(xiàn)在的項(xiàng)目文件變成了這樣

屏幕快照 2016-09-07 23.23.19.png
之前我們一直是雙擊Test.xcodeproj打開項(xiàng)目,以后我們就要雙擊Test.xcworkspace打開了,打開后發(fā)現(xiàn)項(xiàng)目里面多了紅色框的部分,可以看到MJExtension已經(jīng)被引入了。

多出來的文件
使用第三方

你會發(fā)現(xiàn)當(dāng)引入MJExtension的頭文件時(shí),可以#import
<MJExtension.h>或者#import <MJExtension/MJExtension.h>,但是卻不能在輸入#import
"MJExtension.h"的時(shí)候出現(xiàn)提示。雖然強(qiáng)制輸入也可以編譯通過,但是感覺很不爽。
解決這個(gè)問題的辦法是在工程的Build Settings搜索Search,然后在User
header search paths中添加$(SRCROOT)并選擇recursive。

頭文件不提示的解決辦法

現(xiàn)在就可以提示#import "MJExtension.h"啦。
然后我們就可以在項(xiàng)目里面使用MJExtension的方法啦。

使用MJExtension
增加新的第三方

如果使用過程中我還想添加其他的第三方怎么辦,只要在Podfile里面接著添加,然后終端再執(zhí)行pod
install就可以了。

新增第三方

更新CocoaPods中的第三方們。

第三方庫們都有人在維護(hù)升級,我們需要隔斷時(shí)間就要更新下我們工程中第三方庫的版本。只需要終端輸入命令pod
update就可以了。

如果遇到pod
install或者pod update慢的問題,原因在于當(dāng)執(zhí)行以上兩個(gè)命令的時(shí)候會升級CocoaPods的spec倉庫,加一個(gè)參數(shù)可以省略這一步,然后速度就會提升不少。加參數(shù)的命令如下:
pod install --verbose --no-repo-update
pod update --verbose --no-repo-update

刪除CocoaPods中的某些第三方們。

當(dāng)我們需要去掉某個(gè)第三方庫時(shí),只需要在Podfile刪除該引入該庫的語句,然后執(zhí)行pod
update或者pod install就可以了。

將CocoaPods從項(xiàng)目中刪除

如果你在以后的使用過程中不想用CocoaPods了怎么辦?很簡單,把多出來的東西們都刪掉就可以了,不過為了項(xiàng)目正常運(yùn)行,你需要手動導(dǎo)入已經(jīng)使用的第三方們哦。

將CocoaPods從項(xiàng)目中刪除
升級CocoaPods

升級CocoaPods版本的命令和安裝CocoaPods的命令一樣,都是sudo
gem install cocoapods。
如果老版本升級cocoapods的時(shí)候提示Operation not permitted - /usr/bin/xcodeproj,改用命令sudo
gem install -n /usr/local/bin cocoapods --pre就可以了。

卸載CocoaPods

卸載CocoaPods的命令是sudo
gem uninstall cocoapods

卸載CocoaPods
執(zhí)行完命令后,最下面打印Successfully uninstalled cocoapods字樣就代表已經(jīng)成功卸載了。

CocoaPods Mac App的安裝和使用

CocoaPods桌面應(yīng)用版下載地址:https://cocoapods.org/app
打開應(yīng)用會提示你是否安裝命令行工具,選擇install就也可以在命令行使用Pod了。省去了上面的步驟們,方便快捷的使用CocoaPods。

是否安裝命令行工具
現(xiàn)在假如要給一個(gè)Test項(xiàng)目加入第三方庫
1.選擇File-New Podfile from Xcode Project,去選擇項(xiàng)目的Project文件。

選擇項(xiàng)目
2.填寫自動生成的Podfile,并且安裝。

Podfile
然后就可以去打開工程了,是不是比命令行簡單多了。
注意:Cocoapods.app 刪掉并執(zhí)行命令可能會報(bào)錯(cuò):Unable to locate the CocoaPods.app
application bundle. Please ensure the application is available and launch it at least once

常見錯(cuò)誤總結(jié)

錯(cuò)誤1、

當(dāng)寫在Podfile文件中的第三方框架,不能使用,找不到時(shí)
查看Pods文件夾,是否下載了所需要的第三方框架,沒有的話就 pod update

錯(cuò)誤2、

Could not automatically select an Xcode project. Specify one in your Podfile like so:xcodeproj 'path/to/Project.xcodeproj'

在Podfile文件里指定下工程目錄就行了
xcodeproj 'Demo/Demo.xcodeproj'

但是如果cocoapods版本為(1.0.0或更高)的話,可能會有以下警告

[!] xcodeproj was renamed to project. Please use that from now on.

這時(shí)只需要把xcodeproj改為 project就行了

project 'Demo/Demo.project'

錯(cuò)誤3、

The dependency AFNetworking (~> 3.0) is not used in any concrete target.

在Podfile中添加
target‘項(xiàng)目名'do (如 target 'Demo' do )

錯(cuò)誤4、

[!] Invalid Podfile file: syntax error, unexpected end-of-input, expecting keyword_end.

在Podfile的末尾添加 end

錯(cuò)誤5、

Unable to find the Xcode project /Volumes/BIAO/iOS/code/MBWB.xcodeproj for the target Pods.

在Podfile中 將 project 'Demo/Demo.project’ 改成 project 'Demo.project'

錯(cuò)誤6、

build diff: /../Podfile.lock: No such file or directory

在工程設(shè)置中的Build Phases下刪除Check Pods Manifest.lock及Copy Pods Resources

還有一個(gè)更新慢的問題:無論是執(zhí)行pod install還是pod update都卡在了Analyzing dependencies不動

原因在于當(dāng)執(zhí)行以上兩個(gè)命令的時(shí)候會升級CocoaPods的spec倉庫,加一個(gè)參數(shù)可以省略這一步,然后速度就會提升不少。加參數(shù)的命令如下:

pod install --verbose --no-repo-update

pod update --verbose --no-repo-update

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容