簡介
CocoaPods是一個(gè)負(fù)責(zé)管理iOS項(xiàng)目中第三方開源代碼的工具元扔,使用CocoaPods可以節(jié)省設(shè)置和更新第三方開源庫的時(shí)間并提高工作效率。
下面簡單介紹一下,怎樣安裝Cocoapods:
一. 搭建ruby環(huán)境
一般Mac OS已經(jīng)自帶Ruby環(huán)境,可在終端輸入 ruby -v 查看當(dāng)前版本
$ ruby -v
ruby 2.0.0p645 (2015-04-13 revision 50299) [universal.x86_64-darwin15]
如果需要更新,可使用下面的額指令:
sudo gem update --system
然后把Ruby鏡像更換為ruby-china的鏡像,避免被墻
終端輸入:
gem sources --remove https://rubygems.org/
gem sources -a https://gems.ruby-china.com/
如下:
$ gem sources --remove https://rubygems.org/
https://rubygems.org/ removed from sources
$ gem sources -a https://gems.ruby-china.com/
https://gems.ruby-china.com/ added to sources
也可使用清華的源:
https://mirrors.tuna.tsinghua.edu.cn/rubygems/
輸入指令 gem sources -l 可查看當(dāng)前Ruby鏡像:
$ gem sources -l
*** CURRENT SOURCES ***
https://gems.ruby-china.com/
也可使用清華的源:
https://mirrors.tuna.tsinghua.edu.cn/rubygems/
Ruby鏡像即替換成功,下面開始安裝cocoapods!
需要的注意的是:
請盡可能用比較新的 RubyGems 版本闲孤,建議 2.6.x 以上。
$ sudo gem update --system # 這里請翻墻一下
$ gem -v
2.6.3
PS: 如果在使用上面的指令時(shí),報(bào)類似以下這個(gè)錯(cuò)誤:
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the ...
這是權(quán)限問題, 可在指令前加上 sudo, 這樣需要你輸入電腦密碼; 注意, 這里輸入密碼的時(shí)候, 是不會有顯示的, 直接輸入結(jié)束回車即可.
例如, 上面的錯(cuò)誤是我在升級gem的時(shí)候遇到的, 開始我的指令是:
gem update --system
這樣會報(bào)上面的錯(cuò)誤, 改成下面這個(gè)即可:
sudo gem update --system
二. 安裝Cocoapods
打開終端,輸入以下命令:
sudo gem install cocoapods
等待安裝完成!
然后輸入pod setup命令配置CocoaPods(也可以不輸入,不輸入的話第一次使用pod命令的時(shí)候也會自動執(zhí)行)
如果需要查看當(dāng)前Cocoapods的版本, 可使用下面的指令:
pod --version
如果需要升級Cocoapods,可以輸入上面的安裝指令, 或者:
sudo gem install cocoapods --pre
如果你的MacOS系統(tǒng)是在10.11+, 會報(bào)以下錯(cuò)誤:
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/xcodeproj
或者
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /usr/bin directory.
這因?yàn)闆]有寫入的權(quán)限, 只需要將指令改為下面這個(gè)藕溅,換一個(gè)保存路徑即可:
sudo gem install -n /usr/local/bin cocoapods --pre
移除/移除指定版本/安裝指定版本的cocoapods
使用 gem 查看當(dāng)前的Pod版本:
$ gem list
會輸出很多询吴,只需要查看 cocoapods 項(xiàng)
cocoapods (1.9.0.beta.2, 1.8.4)
查看當(dāng)前 cocoapods 版本:
$ pod --version
然后,輸入以下指令刪除該版本:
$ sudo gem uninstall cocoapods -v 版本號
例如:
$ sudo gem uninstall cocoapods -v 1.9.0.beta.2
這里我移除了 1.9.0.beta.2
版本沽损,回車后會要求輸入電腦密碼灯节,成功會輸出以下內(nèi)容:
Successfully uninstalled cocoapods-1.9.0.beta.2
然后安裝指定版本的 cocoapods
$ sudo gem install cocoapods -v 1.8.4
這里我安裝了 1.8.4
版本,成功后會輸出:
Successfully installed cocoapods-1.8.4
Parsing documentation for cocoapods-1.8.4
Done installing documentation for cocoapods after 2 seconds
1 gem installed
三. 簡單使用
1.進(jìn)入工程的根目錄
終端輸入cd 工程根目錄
PS:有些小伙伴不知道怎么查看文件的目錄,其實(shí)很簡單,輸入cd后空一格,然后拖動文件夾到終端即可自動生成文件目錄!
macdeMacBook-Pro:~ Artron_LQQ$ cd /Users/mac/Desktop/LQQAFNetworking2.0
macdeMacBook-Pro:LQQAFNetworking2.0 Artron_LQQ$
以下2--4步绵估,現(xiàn)在已不建議使用炎疆,創(chuàng)建Podfile文件,cd到項(xiàng)目根目錄后国裳,直接輸入 pod init 即可新建一個(gè)含有對應(yīng)target的Podfile文件形入,雙擊即可打開,在里面添加想要的第三方庫頭文件即可缝左!
2.新建Podfile文件
終端輸入touch Podfile (注意Podfile的大小寫):
macdeMacBook-Pro:LQQAFNetworking2.0 Artron_LQQ$ touch Podfile
macdeMacBook-Pro:LQQAFNetworking2.0 Artron_LQQ$
這時(shí)候,工程根目錄下會多個(gè)Podfile文件...
3.打開Podfile文件
終端輸入vi Podfile,即可打開Podfile文件:
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
"Podfile" 0L, 0C
4.編輯Podfile文件
終端輸入 i 即可進(jìn)入文件的編輯模式,然后輸入需要安裝的庫文件
platform :iOS,'7.0'
pod "AFNetworking","~>2.5"
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
-- INSERT --
platform :表示類庫支持的最低系統(tǒng)版本
pod 命令是用于導(dǎo)入第三方庫,后面的"~>2.5"是指定導(dǎo)入庫的版本,如果不加,即導(dǎo)入最新版本
編輯完成后,按下esc鍵,進(jìn)入命令行模式,然后按 shift+: 后輸入wq(保存并退出),回車即可保存編輯內(nèi)容并退出編輯!
如果不知道三方庫是否支持pod或者庫的版本,可用 pod search 命令查詢:
macdeMacBook-Pro:LQQAFNetworking2.0 Artron_LQQ$ pod search AFNetworking
-> AFNetworking (3.0.4)
A delightful iOS and OS X networking framework.
pod 'AFNetworking', '~> 3.0.4'
- Homepage: https://github.com/AFNetworking/AFNetworking
- Source: https://github.com/AFNetworking/AFNetworking.git
- Versions: 3.0.4, 3.0.3, 3.0.2, 3.0.1, 3.0.0, 3.0.0-beta.3, 3.0.0-beta.2,
3.0.0-beta.1, 2.6.3, 2.6.2, 2.6.1, 2.6.0, 2.5.4, 2.5.3, 2.5.2, 2.5.1, 2.5.0,
2.4.1, 2.4.0, 2.3.1, 2.3.0, 2.2.4, 2.2.3, 2.2.2, 2.2.1, 2.2.0, 2.1.0, 2.0.3,
2.0.2, 2.0.1, 2.0.0, 2.0.0-RC3, 2.0.0-RC2, 2.0.0-RC1, 1.3.4, 1.3.3, 1.3.2,
1.3.1, 1.3.0, 1.2.1, 1.2.0, 1.1.0, 1.0.1, 1.0, 1.0RC3, 1.0RC2, 1.0RC1,
0.10.1, 0.10.0, 0.9.2, 0.9.1, 0.9.0, 0.7.0, 0.5.1 [master repo]
- Subspecs:
- AFNetworking/Serialization (3.0.4)
- AFNetworking/Security (3.0.4)
- AFNetworking/Reachability (3.0.4)
- AFNetworking/NSURLSession (3.0.4)
- AFNetworking/UIKit (3.0.4)
macdeMacBook-Pro:LQQAFNetworking2.0 Artron_LQQ$
5.下載文件
以上完成后,在終端輸入: pod install ,即可開始下載所需的庫文件,時(shí)間可能會比較久,下載成功后會有如下輸出:
macdeMacBook-Pro:LQQAFNetworking2.0 Artron_LQQ$ pod install
Updating local specs repositories
CocoaPods 1.0.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.
Analyzing dependencies
Downloading dependencies
Installing AFNetworking (2.6.3)
Generating Pods project
Integrating client project
[!] Please close any current Xcode sessions and use `LQQAFNetworking2.0.xcworkspace` for this project from now on.
Sending stats
Pod installation complete! There is 1 dependency from the Podfile and 1 total
pod installed.
macdeMacBook-Pro:LQQAFNetworking2.0 Artron_LQQ$
到此,Cocoapods的安裝及下載文件就算完成了!
打開項(xiàng)目文件夾會發(fā)現(xiàn)多了個(gè)Pods 文件夾和Podfile ,Podfile.lock,還有一個(gè) .xcworkspace 文件,此時(shí)再打開工程的話就不能用 .xcodeproj 了,而是用新生成的.xcworkspace文件.
pod在為我們下在這些三方庫文件的同時(shí)也為我們使用這些庫文件所需要在工程中的配置也一并配置好了,使用時(shí)只需直接導(dǎo)入相應(yīng)的頭文件!
PS: 如果找不到頭文件,可做如下設(shè)置:
在工程的Build Settings搜索Search Paths亿遂,然后在User header search paths中添加$(SRCROOT)并選擇recursive(也就是遞歸查找)
第一次安裝的時(shí)候需要全程使用終端指令操作,待項(xiàng)目添加pod后,就可以打開項(xiàng)目,直接在項(xiàng)目中的Podfile中編輯,添加相應(yīng)庫即可
如果需要新增庫,就在Podfile文件中新增:pod 第三方庫名
如果需要刪除,就將庫文件從Podfile文件中刪除
然后,再在終端中輸入 pod install,等待完成即可!
注意:所有在終端中操作pod指令的前提是,一定要cd到項(xiàng)目的根目錄...
PS: 如果在以后使用pod install 或者pod update的時(shí)候,可能會卡在Updating local specs repositories這里很久,這是在升級cocoa pods本地的specs倉庫,其實(shí)這個(gè)多數(shù)情況下是沒有必要的,所以可以使用如下指令跳過這個(gè)升級:
pod install --verbose --no-repo-update
pod update --verbose --no-repo-update
或者
pod install --no-repo-update
pod update --no-repo-update