上周五由于項目需要,我把一個有Pods項目改了名,可恨的是電腦上的CocoaPods掛掉了,公司網差。只好周末的時候在家奮斗了一下,功夫不負有心人,最后是被我搞好了,由于出現了好多問題,所以在這把自己的安裝心得說一下,僅供大家參考!
CocoaPods簡介:
CocoaPods是什么呢?它負責管理iOS項目中第三方開源庫的工具,它的項目源碼都在Github上管理的,那么問題又來了,Github是什么呢?(### 被扔西紅柿),咳咳~這個我就不在這廢話了。我們開發iOS項目時不可避免地要使用第三方開源庫(現在第三方開源庫的使用率比前些年更多了,建議大家在允許的條件下 最好是能夠自己造些輪子),CocoaPods的出現使得我們可以節 省配置和更新第三方開源庫的時間和精力。
安裝前奏
首先要提一下CocoaPods的安裝順序:
Xcode -> homebrew -> RVM -> Ruby -> CocoaPods
- Xcode不用說。。大家也沒有不知道的。
- homebrew是什么?接觸過Linux的同學應該挺熟悉yum的,沒錯,homebrew就是OS的yum,一款軟件管理工具。
- RVM 它的全程是Ruby Version Manager,大家看名字也應該可以了解到,這是一款命令行管理工具,能夠輕松的管理Ruby的版本。
- Ruby 這是一款專門為面向設計編程制作的腳本語言,簡單易用,功能強大。
關于這幾個工具的安裝我就不在這篇文章中贅述了,有需要的我再專門寫一篇關于他們的安裝。
安裝正式開始
- 首先使用Ruby的gem命令來進行安裝
$ sudo gem install cocoapods
$ pod setup
敲完這些以后,你會突然發現,卡住了。恭喜你,體驗了一把被“墻”的感覺。這是因為Ruby的源(安裝源)https://rubygems.org/
是亞馬遜的云服務(這個說真的我是之前在唐巧大神的博客中了解到的),這個時候大部分的教程都會叫你換成淘寶的源淘寶的源:https://ruby.taobao.org/
,不過........
沒錯,停止維護了,更具淘寶源上的提示,現在源應該使用
http://gems.ruby-china.org/
這個。好的問題,解決了,那么讓我們換一下ruby的源吧
gem sources --remove https://rubygems.org/ //刪除
gem sources -a http://gems.ruby-china.org/
gem sources -l
你會發現新的ruby源已經安裝完畢,完美~
- 繼續
pod setup
命令,這個時候終端會出現Setting up CocoaPods master repo
,這個步驟 Cocoapods 會將它的信息下載到Mac的~/.cocoapods
目錄下,然后漫長的等待來了~~(表示樓主在這個階段過一會就預覽一下/.cocoapods/repos/master的大小,當然也可以cd到目錄下用du -sh *
命令查看進度,速度挺快,一分鐘能走1MB了呢>_<||| )。
使用 CocoaPods 的鏡像索引
是不是等不下去了?好吧,告訴一個可以提高下載速度的方法,那就是使用CocoaPods的鏡像索引。
所有的項目的 Podspec
文件都托管在https://github.com/CocoaPods/Specs
,第一次執行pod setup
時,CocoaPods 會將這些podspec
索引文件更新到本地的 ~/.cocoapods/
目錄下.
一個叫 akinliu 的朋友在 gitcafe 和 oschina 上建立了 CocoaPods 索引庫的鏡像,因為 gitcafe
和 oschina
的服務器都是在國內,所以在執行索引更新操作時,會快了好多。如下操作可以將 CocoaPods 設置成使用 gitcafe
鏡像:
pod repo remove masterpod repo add master https://gitcafe.com/akuandev/Specs.gitpod repo update
使用 oschina
鏡像:
pod repo remove masterpod repo add master http://git.oschina.net/akuandev/Specs.git
CocoaPods使用
安裝完成后,我們就可以安心的來使用CocoaPods了
- 使用CocoaPods有一個前提,是我們的項目目錄下必須要有一個Profile的文件,那這個文件要怎么創建呢:
cd ''項目根目錄''
pod init
OK,搞定這個時候使用vim Profile
命令編輯Profile里的內容,將依賴庫名字依次列在Profile中,最終格式如下:
其中
target 'Demo' do
和#Pods for Demo
中的Demo是我的工程名。
- 到現在為止,你的Profile就已經配置好了,然后執行:
pod install
等待完成后,你的第三方庫就已經配置好了,打開.xcworkspace,沒錯,再也不是.xcodeproj文件了。
鏈接你的設備,使用配置好的Pods,run一下你的程序吧~
-
Note: 每次更改了 Podfile 文件,你需要重新執行一次
pod update
命令。
三個重要的知識點
- 當執行pod install之后,除了Podfile,還會生成一個名為
Podfile.lock
的文件,它會鎖定當前各依賴庫的版本,之后即使多次執行pod install
也不會更改版本,只有執行pod update
才會改變Podfile.lock
.在多人協作的時候,這樣可以防止第三方庫升級時候造成大家各自的第三方庫版本不一致,所以在往SVN提交版本的時候不能把它落下。(個人認為可以把它從ignore列表中刪掉) - Pods項目最終會編譯成一個名為libPods.a的文件,主項目只需要依賴這個.a文件即可,這個文件一般在項目的frameworks文件夾下。
- CocoaPods通過一個名為Pods.xcconfig的文件來在編譯時設置所有的依賴和參數。
結語
這次重命名項目讓我好好的研究了一把CocoaPods,畢竟之前都是直接看教程敲命令行??。不過還是要吐槽一下pod setup
的下載速度~樓主表示,都怪你讓我連輸了三把排位!ヽ(ˋДˊ)ノヽ(ˋДˊ)ノヽ(ˋДˊ)ノ