Xcode 8.0安裝CocoaPods的(diff: /../Podfile.lock: No such file or directory)

在之前的一個項目安裝過CocoaPods,當時使用的Xcode 7,Mac系統為OS X 10.11,安裝流程順利,可是在Xcode 8.0和macOS 10.12上安裝遇到了一些問題,然后網上查詢了一些相關資料,自己整理了一下新的安裝步驟和流程。
眾所周知,CocoaPods是iOS項目類庫的管理工具,可以讓開發者很方便集成各種第三方庫,而不用去網站上逐一下載,再逐一將文件夾拖進項目中,還得添加相關的系統依賴庫。開發iOS項目不可避免地要使用第三方開源庫,CocoaPods的出現使得我們可以節省配置開源庫的時間。
1. CocoaPods的安裝步驟
在安裝CocoaPods之前,首先要在本地安裝好Ruby環境,默認情況下,Mac自帶Ruby環境。因為Ruby的默認源rubygems.org使用的是亞馬遜的云服務,在國內使用會被墻,所以需要更換一下Ruby的源。

有時我們下載別人的代碼運行時會報

diff: /../Podfile.lock: No such file or directory  
diff: Manifest.lock: No such file or directory   
error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.`

看到這個簡直要崩潰了,那這個怎么解決呢,下面我給大家說下自己爬過的坑,
關閉當前的工作空間,刪除掉文件夾中的workspace cd 到自己當前項目中,終端進行一下:

rm -rf GZDemo.xcworkspace  
pod install

最后通過workspace打開工作空間,完美!

1.1 首先打開終端,輸入以下命令符檢查Ruby源
$ gem sources - l

如果你的鏡像地址是如下圖1-1所示:

圖1-1

那么就需要替換Ruby源。
1.2 替換Ruby源,輸入以下命令符,刪除目前的Ruby源
gem sources --remove https://rubygems.org/

1.3 添加新的Ruby源,輸入以下命令符:
gem sources -a http://rubygems-china.oss.aliyuncs.com

之前使用的是以下這個
gem sources -a https://ruby.taobao.org/

但是這個已經不維護了,請查看相關信息
**1.4 添加新的Ruby源之后,可以查看是否替換成功 **
** **$ gem sources -l

成功就如圖1-2所示:

屏幕快照 2017-04-13 15.54.24.png

到這里就算已經成功配置完環境了,下一步就是安裝了。
1.5 安裝CocoaPods,繼續在終端輸入命令:
macOS 10.12以下使用的是
sudo gem install -n /usr/local/bin/ cocoapods

OS X 10.11以上使用的是
sudo gem install cocoapods

1.6 等待以上命令符執行完畢,繼續輸入以下命令:
pod setup

出現如圖1-3所示:

圖1-3

出現Setting up CocoaPods master repo 后會卡住一段時間,
可以在新開一個終端的窗口,輸入以下的命令,查看下載文件的大小。
cd ~/.cocoapods du -sh

下載完畢后,所占磁盤的大小在894M左右。
1.7 下載成功,輸入以下命令:
$ pod --version

可以看到安裝成功cocoapods的版本。
當然我們也可以對cocoapods卸載重新安裝**,輸入以下命令:
sudo gem uninstall cocoapods //卸載 sudo gem install -n /usr/local/bin cocoapods //安裝
或者 $ sudo gem install cocoapods

cocoapods卸載重裝的例子參考。如果升級已有的cocoapods,則輸入以下命令:
$ sudo gem update cocoapods //升級cocoapods

查看本地安裝過的cocoapods相關東西,命令如下:
$ gem list --local | grep cocoapods

  1. CocoaPods的使用
    需要查看一下CocoaPods是否安裝成功,這時只需在終端輸入 *pod search +開源類庫的名字 *回車即可。例如:
    $ pod search AFNetworking

安裝成功就會顯示出相關的所有第三方開源類庫。
2.1 怎么在項目中使用呢,首先需要在終端里面cd到項目文件夾里面,如下所示:
$ cd 項目文件夾路徑 (可以直接把拖動項目文件夾到終端光標處,系統自動生成路徑)

2.2 創建Podfile 文件
$ touch Podfile

2.3 編輯Podfile文件
$ vim Podfile

接下來,在Podfile文件里面進行書寫
cocoapods版本1.0.1之前的:
pod 'AFNetworking','~>2.6.0' #設置框架的名稱和版本號
cocoapods版本是1.0.1之后的:
platform :ios, '8.0' #用來設置所有第三方庫所支持的iOS最低版本
target 'MyApp' do #MyApp 就是你的項目名
pod 'AFNetworking', '~> 3.1.0'
end
(版本號的規則:
'>1.0' 可以安裝任何高于1.0的版本
'>=1.0' 可以安裝任何高于或等于1.0的版本
'<1.0' 任何低于1.0的版本
'<=1.0' 任何低于或等于1.0的版本
'~>0.1' 任何高于或等于0.1的版本,但是不包含高于0.1的版本
'~>0' 任何版本,相當于不指定版本,默認采用最新版本號)
編輯Podfile文件之后, 按 i 可編輯 ,esc 退出編輯,:wq 可保存退出,:q 不保存退出。擴展Podfile語法參考
2.4 安裝第三方開源類庫
編輯Podfile文件之后,保存退出,然后終端輸入命令:
$ pod install

等命令運行完,項目就已經是添加了cocoapods管理,啟動項目就是點擊.xcworkspace后綴的文件,在iOS項目中,導入頭文件就能調用第三方庫了。
2.5 更新第三方開源類庫
以后需要添加、更新、刪除某個第三方庫,只要編寫好Podfile文件,在終端輸入:
$ pod update

之后運行就OK了。
如果升級某一個指定的第三方庫,則輸入以下命令:
$ pod update 第三方庫名稱

  1. CocoaPods安裝失敗問題總結
    安裝不成功的解決辦法之前,先解釋幾個名詞
    Ruby 是一種面向對象、命令式、函數式、動態的通用編程語言。可運行于多種平臺,如 Windows、MAC OS 和 UNIX 的各種版本。且和Apple系列的程序員最直接關聯的就是Mac的開發環境,直接關聯于Cocoapods工具。但是,cocoapods工具與Ruby的版本有一定的關聯性,難免不涉及到升級。
    gem是基于Ruby的一些開發工具包,不同的Gem可能會依賴不同的Ruby版本,通常來講,新版本特性更多,用起來更便利。
    **rails **是一個基于Ruby的網頁服務器的架構,rails也算是一組gem,專門用來做網站的。 當然它們三個各自有各自的版本。
    rvm是什么?rvm是Ruby版本管理器。為什么要安裝rvm呢?因為rvm可以讓你擁有多個版本的Ruby,并且可以在多個版本之間自由切換。
    3.1 錯誤提示一
    如果提示下面的錯誤提示,則需要安裝高版本ruby,需要在終端進行升級,升級之前先安裝rvm。
    ERROR: Error installing cocoapods:
    activesupport requires Ruby version >= 2.2.2.

第一步:安裝rvm
$ curl -L get.rvm.io | bash -s stable

$ source ~/.profile

等待終端加載完畢后輸入:
$ rvm -v

如果能顯示版本號,則安裝成功。
第二步:安裝ruby
列出ruby可安裝的版本信息
$ rvm list known

安裝一個ruby版本
$ rvm install 2.2

如果想設置為默認版本,可以用這條命令來完成
$ rvm use 2.0.0 --default

查看已安裝的ruby
$ rvm list

卸載一個已安裝ruby版本
$ rvm remove 2.2

3.2 錯誤提示二
如果在終端安裝過程中出現以下錯誤提示:
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.

解決辦法升級gem,在終端輸入:
$ sudo gem update --system

輸入上面的后如果出現ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/update_rubygems這樣的報錯 就在終端輸入:
sudo gem install -n /usr/local/bin cocoapods
問題迎難而解

注意rvm、ruby、gem是順序更新的。
查看已安裝的gem,輸入:
$ gem -v

則可以看到gem的安裝版本號。
3.3 錯誤提示三
pod setup之后,出現Setting up CocoaPods master repo,在等待過程中,可能出現下面錯誤:
[!] /usr/bin/git clone https://github.com/CocoaPods/Specs.git master
Cloning into 'master'...
fatal: unable to access 'https://github.com/CocoaPods/Specs.git/': SSLRead() return error -9806

推測可能是網絡帶寬問題,git下載速度比較慢,所以會出現這種錯誤。
失敗的解決辦法,可以手動去克隆一份到repos目錄下面:
通過終端,進入到
$ cd ~/.cocoapods/repos

然后通過終端
$ git clone https://github.com/CocoaPods/Specs.git

成功后通過finder的前往文件夾進行查看 ~/.cocoapods/repos
將clone的Specs項目的文件夾改名為master, 然后執行命令:
$ pod setup

更新:最近發現CocoaPods無法從Github上clone下來。解決辦法是使用國內的鏡像地址(https://coding.net/u/hging/p/Specs/git),然后在從前往文件夾的方式進入~/.cocoapods/repos目錄下,再將文件夾重命名為master。然后執行命令:
$ pod setup

3.4 錯誤提示四
有的情況下搜索第三方庫,例如搜索AFNetworking,也就是在執行以下命令符之后,
$ pod search AFNetworking

會出現以下錯誤“:
[!] Unable to find a pod with name, author, summary, or description matching AFNetworking

解決辦法,就是清除搜索的緩存,執行以下命令就可以搜索出來想要搜索的第三方庫了。
$ rm ~/Library/Caches/CocoaPods/search_index.json

3.5 補充一些終端命令
rvm list #查看已安裝ruby

rvm list known #列出ruby可安裝版本信息

rvm remove 2.2.2 #卸載一個已安裝的ruby版本

gem source #查看已有源

gem list #查看local gems

which pod #查看pod 的本地地址

總結:
有不足之處還望諒解和指點,另給出參考的博客鏈接。
Xcode8 macOS Sierra 10.12 安裝 CocoaPods
最新的 cocoapods 安裝與使用(2016.11)
Mac上更新Ruby
Mac 如何升級 Ruby 版本
cocoapods:安裝/更新Ruby環境教程
使用CocoaPods時提示安裝高版本ruby遇到的坑。
使用CocoaPods時遇到pod setup失敗的解決辦法
CocoaPods錯誤
CocoaPods安裝最詳細教程

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,002評論 6 542
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,400評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,136評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,714評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,452評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,818評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,812評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,997評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,552評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,292評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,510評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,035評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,721評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,121評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,429評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,235評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,480評論 2 379

推薦閱讀更多精彩內容