一著榴、 CocoaPods簡介
CocoaPods是一個用Ruby寫的、負(fù)責(zé)管理iOS項目中第三方開源庫的工具屁倔。它能讓我們集中的兄渺、統(tǒng)一管理第三方開源庫,為我們節(jié)省設(shè)置和更新第三方開源庫的時間汰现。重要的是絕大部分有名的開源類庫挂谍,都支持CocoaPods。所以瞎饲,作為iOS程序員的我們口叙,掌握CocoaPods的使用是必不可少的基本技能了。官網(wǎng):https://cocoapods.org嗅战,發(fā)布的庫在這里搜會有延遲妄田。
二、更新cocoaPods鏡像
- pod --version 查看當(dāng)前安裝版本
- gem source -l 查看當(dāng)前使用的鏡像源
注意:如果這里查看你的ruby是:https://ruby.taobao.org/驮捍。需要進(jìn)行替換疟呐,淘寶已經(jīng)停止更新了。
新的鏡像地址為:https://gems.ruby-china.org/
- gem sources --remove https://ruby.taobao.org/ 移除現(xiàn)裝的淘寶鏡像
- gem sources -a https://gems.ruby-china.org/ 安裝新鏡像
- sudo gem install cocoapods 開始安裝cocoaPods
注意:這一步可能會報錯:Operation not permitted - /usr/bin/xcodeproj东且。
解決辦法:輸入命令启具,sudo gem install -n /usr/local/bin cocoapods
三、pod search搜索失敗
有時候自己制作了一個pod庫珊泳,已經(jīng)驗證成功了鲁冯。懷著激動的心情pod search了一把拷沸,結(jié)果發(fā)現(xiàn)報錯:[!] Unable to find a pod with name, author, summary, or descriptionmatching '······',這有可能cocoapods搜索邏輯所造成的薯演,解決方法如下
- 執(zhí)行pod repo update撞芍。然后進(jìn)行pod search,如果仍然失敗跨扮,再進(jìn)行以下操作序无。
- 執(zhí)行pod setup。實際上在你安裝cocoaPods的時候衡创,會默認(rèn)進(jìn)行setup愉镰,但是由于某些不可抗力因素,到時setup沒有成功钧汹。此時就需要手動進(jìn)行setup丈探。出現(xiàn)Setup Completed,說明setup執(zhí)行成功拔莱。
- 此時再進(jìn)行pod search碗降,如果還是失敗,cocoaPods應(yīng)該是解析此json文件進(jìn)行了搜索塘秦。刪除~/Library/Caches/CocoaPods目錄下的search_index.json文件讼渊。rm ~/Library/Caches/CocoaPods/search_index.json
四、升級cocoaPods版本
發(fā)布更新自己的cocoapods庫的時候尊剔,最后一步報錯了爪幻。
Updating spec repo `master`
[!] Failed to connect to GitHub to update the CocoaPods/Specs specs repo - Please check if you are offline, or that GitHub is down
這是因為Github在不久之前的2018年2月23號做了一些屌絲操作。需要我們更新mac系統(tǒng)下的OpenSSL须误。具體操作如下:
$ which openssl
$ openssl version
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
$ brew update
$ brew install openssl
$ brew upgrade openssl
$ echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
$ source ~/.bash_profile
$ which openssl
$ openssl version
$ brew install rbenv ruby-build
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile
$ source ~/.bash_profile
$ rbenv install --list
//這里要安裝2.5.0的ruby挨稿,否則后面會報錯
$ rbenv install 2.5.0
$ rbenv versions
$ ruby --version
$ rbenv global 2.5.0
$ rbenv versions
$ ruby --version
$ gem install cocoapods -n /usr/local/bin
$ which pod
$ pod --version
1.5.0