同步在 github倉庫
第一部分按厘、Mac安裝CocoaPods詳解
目錄
- Ruby環(huán)境的安裝
- 安裝系統(tǒng)需要的包
- Homebrew安裝
- 安裝RVM
- 使用RVM安裝Ruby環(huán)境
- 設(shè)置 Ruby 版本
- 替換Ruby源為taobao.org
- 安裝CocoaPods
- CocoaPods是什么?
- 直接安裝CocoaPods
- 更新repos文件
- CocoaPods使用原理
- 后期使用出現(xiàn)的問題
- 問題一:”setting up cocoapods master repo”卡著不動
- 問題二:
pod search
異常
一焰盗、Ruby環(huán)境的安裝
1.1觉至、安裝系統(tǒng)需要的包
先安裝 Xcode 開發(fā)工具,它將幫你安裝好 Unix 環(huán)境需要的開發(fā)包
1.2睡腿、Homebrew安裝
1.2.1语御、HOMEBREW是神馬
linux系統(tǒng)有個讓人蛋疼的通病,軟件包依賴席怪,好在當前主流的兩大發(fā)行版本都自帶了解決方案应闯,Red hat有yum,Ubuntu有apt-get神馬挂捻,你用mac os碉纺,不好意Mac os木有類似的東東,淚奔中幾經(jīng)折騰總算找到了第三方支持:Homebrew刻撒,Homebrew簡稱brew骨田,是Mac OSX上的軟件包管理工具,能在Mac中方便的安裝軟件或者卸載軟件声怔,可以說Homebrew就是mac下的apt-get态贤、yum神器
1.2.2、是否已安裝HOMEBREW
brew search rabbitmq醋火,能搜索到則證明已安裝悠汽。
LionsomMBP:~ lionsom$ brew search rabbitmq
==> Searching local taps...
rabbitmq rabbitmq-c
==> Searching taps on GitHub...
caskroom/cask/rabbitmq-app
==> Searching blacklisted, migrated and deleted formulae...
1.2.3、安裝HOMEBREW
安裝 Homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
將以上命令粘貼至終端芥驳。
1.2.4柿冲、更多詳情,請前往HOMEBREW官網(wǎng)查看
1.3兆旬、安裝RVM
1.3.1假抄、RVM是什么?
Ruby Version Manager簡稱RVM,是一款非常好用的ruby版本管理以及安裝工具。
1.3.2慨亲、具體安裝步驟
$ curl -L https://get.rvm.io | bash -s stable
期間可能會問你sudo管理員密碼婚瓜,以及自動通過homebrew安裝依賴包,等待一段時間后就可以成功安裝好 RVM刑棵。
然后巴刻,載入 RVM 環(huán)境(新開 Termal 就不用這么做了,會自動重新載入的)
$ source ~/.rvm/scripts/rvm
檢查一下是否安裝正確
$ rvm -v
rvm 1.29.3 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]
1.4蛉签、使用RVM安裝Ruby環(huán)境
列出已知的ruby版本
$ rvm list known
可以選擇現(xiàn)有的rvm版本來進行安裝(下面以rvm 2.4版本的安裝為例)
$ rvm install 2.4
同樣繼續(xù)等待漫長的下載胡陪,編譯過程,完成以后碍舍,Ruby, Ruby Gems 就安裝好了柠座。
如果Honebrew沒有安裝,則在此過程中會進行自動安裝片橡。
-
查看是否安裝成功
$ ruby -v
-
查詢已經(jīng)安裝的ruby
$ rvm list
-
卸載一個已安裝版本
$ rvm remove 1.9.2
1.5妈经、設(shè)置 Ruby 版本
RVM 裝好以后,需要執(zhí)行下面的命令將指定版本的 Ruby 設(shè)置為系統(tǒng)默認版本
$ rvm 2.4.1 --default
同樣捧书,也可以用其他版本號吹泡,前提是你有用 rvm install 安裝過那個版本
這個時候你可以測試是否正確
$ ruby -v
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-darwin17]
1.6、替換Ruby源為taobao.org (過時经瓷,最新看1.7)
因為Ruby的默認源使用的是cocoapods.org爆哑,國內(nèi)訪問這個網(wǎng)址有時候會有問題,一種解決方案是將遠替換成淘寶的舆吮,替換方式如下:
$ gem source -r https://rubygems.org/
$ gem source -a https://ruby.taobao.org
要想驗證是否替換成功了揭朝,可以執(zhí)行:
$ gem sources -l
正常的輸出結(jié)果:
*** CURRENT SOURCES ***
https://ruby.taobao.org
到這里就已經(jīng)把Ruby環(huán)境成功的安裝到了Mac OS X上,接下來就可以進行相應的開發(fā)使用了色冀。
1.7潭袱、替換Ruby源為ruby-china(最新)
可以查看公告 Ruby China 的 RubyGems 鏡像上線
請盡可能用比較新的 RubyGems 版本,建議 2.6.x 以上锋恬。
$ gem update --system # 這里請翻墻一下
$ gem -v
2.6.3
$ gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
$ gem sources -l
https://gems.ruby-china.com
# 確保只有 gems.ruby-china.com
二敌卓、安裝CocoaPods
2.1、CocoaPods是什么伶氢?
- CocoaPods官方指南地址 https://guides.cocoapods.org
- CocoaPods項目的地址 https://github.com/CocoaPods/CocoaPods
當你開發(fā)iOS應用時趟径,會經(jīng)常使用到很多第三方開源類庫,比如JSONKit癣防,AFNetWorking等等蜗巧。可能某個類庫又用到其他類庫蕾盯,所以要使用它幕屹,必須得另外下載其他類庫,而其他類庫又用到其他類庫,“子子孫孫無窮盡也”望拖,這也許是比較特殊的情況渺尘。總之小編的意思就是说敏,手動一個個去下載所需類庫十分麻煩鸥跟。另外一種常見情況是,你項目中用到的類庫有更新盔沫,你必須得重新下載新版本医咨,重新加入到項目中,十分麻煩架诞。如果能有什么工具能解決這些惱人的問題拟淮,那將“善莫大焉”。所以谴忧,你需要 CocoaPods很泊。
CocoaPods應該是iOS最常用最有名的類庫管理工具了,上述兩個煩人的問題沾谓,通過cocoaPods撑蚌,只需要一行命令就可以完全解決,當然前提是你必須正確設(shè)置它搏屑。重要的是,絕大部分有名的開源類庫粉楚,都支持CocoaPods辣恋。所以,作為iOS程序員的我們模软,掌握CocoaPods的使用是必不可少的基本技能了伟骨。
2.2、直接安裝CocoaPods
直接在終端輸入
$ sudo gem install cocoapods
等待一小段時間燃异,安裝完成P痢!
驗證是否安裝成功:
$ pod --version
或者
$ pod search AFNetworking
2.3回俐、在使用Pod進行操作之前最好手動更新repos文件(解決詳情見4.1)
為什么最好手動導入呢逛腿?
如果不手動導入也沒有問題,再使用
pod search AFNetworking
的時候pod會自動進行setting up cocoapods master repo
的更新仅颇,由于文件過大单默,需要下載好一會兒。所以此時使用手動添加repos
的文件比較方便忘瓦。
[圖片上傳失敗...(image-9065a0-1566455300178)]
2.4搁廓、如何前往.COCOAPODS
文件
- 顯示隱藏文件
Command + shift + .
- 也可在
Finder -> 前往 -> 前往文件夾 -> ~/.cocoapods
[圖片上傳失敗...(image-d8b841-1566455300178)]
- 具體路徑如下
[圖片上傳失敗...(image-d842bb-1566455300178)]
三、CocoaPods使用原理
- pod setup
- 將遠程索引庫下載到本地
- 本地索引庫路徑(查看2.3.1)
- 同時生成檢索文件(Key-Value格式,便于檢索)
- pod search AFN
- 前往檢索文件檢索
- 然后根據(jù)檢索到的Value找到本地索引庫中
.spec
查看框架的具體信息
- pod install
- 得到AFN框架遠程地址下載到我們項目中
四境蜕、后期使用出現(xiàn)的問題
4.1蝙场、問題一:”setting up cocoapods master repo”卡著不動
概述
CocoaPods首次安裝使用時均需要強制拉取repos,因為repos是在GitHub托管的粱年,導致容易出現(xiàn)拉取緩慢超時和異常中斷等問題售滤,以往大家為解決這一問題一般會采用替換國內(nèi)鏡像的方式來解決,可惜國內(nèi)鏡像更新不及時的問題也是沒有辦法解決逼泣。實際上我們都知道CocoaPods拉取repos就是將托管服務器中的Specs項目克隆至本地的過程趴泌,所以解決辦法就出現(xiàn)啦,見『解決二』拉庶。
-
解決一:替換國內(nèi)鏡像
那個淘寶鏡像(https://ruby.ta obao.org)不可用了嗜憔,所以需要使用最新的ruby鏡像(https://gems.ruby-china.com)
具體操作 可查看1.7章節(jié)
-
解決二:前往GitHub上手動下載CocoaPods/Specs項目
4.2、問題二:pod search
異常
4.2.1氏仗、執(zhí)行pod setup
- 終端輸入:
pod search AFNetworking
- 輸出:
Unable to find a pod with name, author, summary, or descriptionmatching 'AFNetworking'
這時就需要繼續(xù)下面的步驟了吉捶。
4.2.2、刪除~/Library/Caches/CocoaPods目錄下的search_index.json文件
-
pod setup
成功后皆尔,依然不能pod search
呐舔,是因為之前你執(zhí)行pod search
生成了search_index.json
,此時需要刪掉慷蠕。 - 終端輸入:
rm ~/Library/Caches/CocoaPods/search_index.json
- 刪除成功后珊拼,再執(zhí)行
pod search
。
4.2.3流炕、執(zhí)行pod search
- 終端輸入:
pod search afnetworking(不區(qū)分大小寫)
- 輸出:
Creating search index for spec repo 'master'.. Done!
澎现,稍等片刻······就會出現(xiàn)所有帶有afnetworking字段的類庫。
五每辟、奇淫巧技
1剑辫、pod install提速
每次執(zhí)行pod install
和pod update
的時候,cocoapods都會默認更新一次spec倉庫渠欺。這是一個比較耗時的操作妹蔽。在確認spec版本庫不需要更新時,給這兩個命令加一個參數(shù)跳過spec版本庫更新,可以明顯提高這兩個命令的執(zhí)行速度挠将。
pod install --verbose --no-repo-update
pod update --verbose --no-repo-update
2胳岂、關(guān)于Podfile文件編輯時,第三方庫版本號的各種寫法
#pod 'AFNetworking' //不顯式指定依賴庫版本舔稀,表示每次都獲取最新版本
#pod 'AFNetworking', '2.0' //只使用2.0版本
#pod 'AFNetworking', '>2.0′ //使用高于2.0的版本
#pod 'AFNetworking', '>=2.0′ //使用大于或等于2.0的版本
#pod 'AFNetworking', '<2.0′ //使用小于2.0的版本
#pod 'AFNetworking', '<=2.0′ //使用小于或等于2.0的版本
#pod 'AFNetworking', '~>0.1.2′ //使用大于等于0.1.2但小于0.2的版本旦万,相當于>=0.1.2并且<0.2.0
#pod 'AFNetworking', '~>0.1′ //使用大于等于0.1但小于1.0的版本
#pod 'AFNetworking', '~>0′ //高于0的版本,寫這個限制和什么都不寫是一個效果镶蹋,都表示使用最新版本
第二部分成艘、Cocopods各種問題匯總
推薦文檔
一赏半、GCC_PRECOMPILE_PREFIX_HEADER
重寫
當導入 pod 'Texture'
時,遇到如下問題淆两, 圖1.1
提示GCC_PRECOMPILE_PREFIX_HEADER
重寫断箫,我們進入提示的文件查看,圖1.2
發(fā)現(xiàn):我們項目本身使用PCH秋冰,所以對GCC_PRECOMPILE_PREFIX_HEADER
進行了設(shè)置仲义,圖1.3
而pod的庫 Texture 也對其進行了設(shè)置,圖1.4
從而導致改警告的發(fā)生剑勾,重寫埃撵。
最終修改:在building setting中搜索 GCC_PRECOMPILE_PREFIX_HEADER
,然后在 Other
中添加上$(inherited)
。圖1.5虽另,再次pod install
暂刘,警告也就沒有了。
圖1.1
[圖片上傳失敗...(image-176c2f-1566455300178)]
圖1.2
[圖片上傳失敗...(image-ba15eb-1566455300178)]
圖1.3
[圖片上傳失敗...(image-28bb56-1566455300178)]
圖1.4
[圖片上傳失敗...(image-4096da-1566455300178)]
圖1.5
[圖片上傳失敗...(image-8b132a-1566455300178)]
二捂刺、- Use the $(inherited)
flag, or - Remove the build settings from the target.
問題截圖
[圖片上傳失敗...(image-37c27c-1566455300178)]
解決方案
[圖片上傳失敗...(image-7024af-1566455300178)]
三谣拣、不要使用TextEdit編輯PodFile文件
[!] Smart quotes were detected and ignored in your Podfile. 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.
解決方案:用Xcode打開Podfile 看看里面的pod類庫是不是像中文引號 編輯改下就行了 在外面打開編輯就會產(chǎn)生這樣的問題
四、overrides the ENABLE_BITCODE
......
[圖片上傳失敗...(image-cbaa37-1566455300178)]
解決方案:
pod update
將庫更新一下族展,然后再pod install
就沒有警告了森缠。
五、[!] ERROR: Parsing unable to continue due to merge conflicts present in:
[圖片上傳失敗...(image-f37c8e-1566455300178)]
解決方案:在
Podfile.lock
和Manifest.lock
中有沖突仪缸,解決下沖突即可贵涵。
[圖片上傳失敗...(image-a71c2a-1566455300178)]
六、Cocoapod版本過低警告
[圖片上傳失敗...(image-e0f1c4-1566455300178)]
解決方案:
pod repo update
命令更新資源庫即可恰画。