來源:https://www.jianshu.com/p/a3b803457b08
CocoaPods的簡介
CocoaPods是一個管理Swift和Objective-C的Cocoa項目的依賴工具。它包含了github上所有的第三方庫,我們使用它來管理我們項目依賴的第三方庫,可以節省設置和更新第三方開源庫的時間。
安裝CocoaPods
因為我只用過Mac版本,這里只介紹Mac版本的安裝步驟:
1.安裝ruby
Mac上面本來就自帶了ruby,因此我們跳過這個步驟。
2.安裝cocoapods
-
由於天朝網絡的原因,我們無法使用它自帶的官方源(服務器畢竟在國外),這就要求我們替換掉它,首先移除官方源
$ gem sources --remove https://rubygems.org/
-
添加上我們國內的源,這里通常有兩個選擇一個是
https://ruby.taobao.org/
一個是https://gems.ruby-china.org
(注意:不要寫錯任何地方,最好粘貼復制,后面是否有斜線,是否是https等問題)這里我們以后者為例,在終端輸入$ gem source -a https://gems.ruby-china.org
-
執行完畢后我們輸入命令看下是否替換成功
$ gem source
-
如果終端輸出如下,則代表成功替換掉了(當然如果使用的是 https://ruby.taobao.org/ 顯示的也是https://ruby.taobao.org/ )
*** CURRENT SOURCE***https://gems.ruby-china.org
-
到這里我們才可以真正的安裝cocoapods。在你的終端上輸入如下命令
$ sudo gem install cocoapods
-
安裝完成后我們要對cocoapods進行一下初始化
$ pod setup
到了這里我們的cocoapods安裝過程就算完成了。
*關於pod setup
等待時間過長的解決辦法 : *
- 有人可能會一直卡在
pod setup
這一個步驟,首先你要知道這一步執行的操作是什么?
pod setup
的本質就是將https://github.com/CocoaPods/Specs上的Specs項目clone到/Users/用戶名/.cocoapods/repos目錄下。若此目錄下已有Specs項目,則會將項目更新到最新的狀態。由於Specs很大,容易導致pod setup失敗。這時就需要我們手動安裝Specs。下面說下手動安裝的步驟 - 打開我們的終端,將終端cd到桌面上,然后在終端輸入
$ git clone https://github.com/CocoaPods/Specs
,接下來就是漫長的等待過程. - 下載完后我們桌面上會出現一個名為[Specs]的文件夾,將clone的Specs項目的文件夾改名為master,然后拖到/Users/用戶名/.cocoapods/repos目錄下.運行
$ pod setup
注意: 下載Specs文件的時候要用終端clone下來,不要直接去網站現在zip的壓縮包,下載的壓縮包解壓后會缺失.git文件導致還是不能正常運行.
cocoapods的使用
cocoapods虐我千百遍后,終於我們可以享受它帶來的便捷了。
-
打開終端,cd到我們的項目目錄下,為了保證我們確實打開了想要的目錄終端輸入
$ ls
查看一下是否有一個 xxxx.xcodeproj文件(其中xxxx是我們的工程名字)只有出現這個文件我們才能進行后續操作。 -
在我們打開的項目目錄下,需要生成一個Podfile文件來進行我們第三方庫的管理,再終端輸入
$ pod init
如果終端沒有輸出任何錯誤,說明我們安裝成功了。當然有時候我們cd目錄不正確,從而找不到對應的xxxx.xcodeproj文件時,終端會打印
[!] No Xcode project found, please specify one
不要着急,重新cd到項目目錄下,一定要確保有xxxx.xcodeproj文件再次執行,成功后你會在你的項目目錄里面看到一個Podfile的文件,我們就是用它來寫入或者刪除第三方庫的 -
我們可以用腳本編輯器對podfile文件進行編輯操作,
$ vim podfile
打開我們的podfile文件
# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
target 'cocoapodsTest' do # Comment this line if you're not using Swift and don't want to use dynamic frameworks use_frameworks! # Pods for cocoapodsTest target 'cocoapodsTestTests' do inherit! :search_paths # Pods for testing end target 'cocoapodsTestUITests' do inherit! :search_paths # Pods for testing end end
按一下 i 鍵,如果終端最下方出現
-- INSERT ---
表示我們進入編輯操作了,刪除掉沒有大用的地方,刪除后的文件如下,當然 # 后面的文字表示注釋,是我自己添加的,刪除后的文件也沒有
#我們最低適應的版本,如下表示最低為iOS 9.0,我們可以自己定義版本號
platform :ios, '9.0'
# ''中的內容為我們的項目名字,這里一般不需要我們更改
target 'cocoapodsTest' do
#如果你是用Swift編寫的工程,建議保留這一行,要不然在你的項目中無法識別第三方庫
use_frameworks!
#以后要在這個位置寫入我們依賴的第三方庫名稱 end
編輯完成后按下esc按鈕退出編輯狀態,在輸入 :wq 保存更改並退出podfile文件。
終端輸入
$ pod install
建議 : 如果你正在使用的第三方依賴庫中沒有什么更新的話,在你執行$ pod install
的時候后面加上--no-repo-update,即不更新本地倉庫,可以節省時間
執行完后,項目下多了 xxxx.xcworkspace 和 Podfile.lock兩個文件,從此以后我們打開工程的時候就要打開 xxxx.xcworkspace了不再是xxxx.xcodeproj。
- 點擊 xxxx.xcworkspace,打開我們的項目,如果Xcode報
Couldn't load cocoapodsTest.xcodeproj because it is already opened from another project or workspace
,我們只是忘了將原來通過xxxx.xcodeproj打開的項目關閉,導致無法加載,只要我們將項目關閉后再通過xxxx.xcworkspace打開一遍就OK了。
打開項目后我們可以看到我們兩個工程,一個是我們自己的工程,一個是Pods工程,打開Pods,我們可以看到一個podfile文件,這個就是我們以前編輯的那個podfile文件,如果你嫌用腳本編譯編輯麻煩,可以在這里直接編輯,反正我一般都是用Xcode來編輯的。 - 第三方庫的查找與導入
下面我就以SVProgress為例來說下庫的導入,首先我們要看先要使用的第三方庫是否支持cocoapods,打開終端輸入,因為我們以 SVProgress 為例子,此處輸入的為 SVProgress
$ pod search SVProgress
如果支持,那么恭喜你你只要將終端打印出來的各個版本選擇一個然后將打印信息中的pod 'SVProgressHUD'
復制一下,打開podfile文件,至於如何打開,你可以用Xcode或者用別的文本編輯器就看個人習慣了,將pod 'SVProgressHUD'
粘貼到我們上面提到過的位置。在用終端cd到有podfile的目錄下終端輸入
$ pod install
出現提示信息Pod installation complete!
表示我們安裝成了,這時候我們可以愉快的在工程中使用我們的第三方庫了