權威CocoaPods使用教程

CocoaPods使用教程

一、什么是CocoaPods

每種語言發展到一個階段,就會出現相應的依賴管理工具,例如 Java 語言的 Maven,nodejs 的 npm。隨著 iOS 開發者的增多,業界也出現了為 iOS 程序提供依賴管理的工具,它的名字叫做:CocoaPods。

CocoaPods項目的源碼 在 Github 上管理。該項目開始于 2011 年 8 月 12 日,經過多年發展,現在已經成為 iOS 開發事實上的依賴管理標準工具。開發 iOS 項目不可避免地要使用第三方開源庫,CocoaPods 的出現使得我們可以節省設置和更新第三方開源庫的時間。

二、為什么要使用CocoaPods

在使用CocoaPods之前,開發項目需要用到第三方開源庫的時候,我們需要

  1. 把開源庫的源代碼復制到項目中
  2. 添加一些依賴框架和動態庫
  3. 設置-ObjC,-fno-objc-arc等參數
  4. 管理他們的更新

在使用CocoaPods后,我們只需要把用到的開源庫放到一個名為Podfile的文件中,然后執行pod install就可以了,Cocoapods就會自動將這些第三方開源庫的源碼下載下來,并且為我們的工程設置好響應的系統依賴和編譯參數。

三、CocoaPods的原理

CocoaPods的原理是將所有的依賴庫都放到另一個名為Pods的項目中,然后讓主項目依賴Pods項目,這樣,源碼管理工作都從主項目移到了Pods項目中。Pods項目最終會編譯成一個名為libPods.a的文件,主項目只需要依賴這個.a文件即可。

四、CocoaPods的安裝

CocoaPods可以方便地通過Mac自帶的RubyGems安裝。
執行命令: sudo gem install cocoapods

五、Cocoapods的使用

隨便以一種方式新建一個名為Podfile的文件放到你的工程根目錄下(不能寫成別的名字,也可以自己在工程根目錄里面直接新建)

Podfile文件內容的格式應該如下:

# 代表注釋
# 將下面的注釋打開,注明你的開發平臺及版本, ‘9.0’不寫即為最新版本
# platform :ios, '9.0'

target '06-testCocoaPods' do
  # 如果使用swift開始,或者動態庫開發,將下面的注釋打開
  # use_frameworks!
  # 在 do 和 end 中間添加需要導入的庫
    pod 'AFNetworking', '~> 2.5.3' #('~> 2.5.3'為版本號,忽略不寫即為最新版本)
    pod 'SDWebImage' #代表使用最新版本
end

然后在Terminal進入工程所在的根目錄(工程根目錄)中執行 :

pod install

這樣,AFNetworking和SDWebImage就已經下載完成并且設置好了編譯參數和依賴,以后使用的時候切記如下兩點:

  1. 從此以后需要使用Cocoapods生成的 .xcworkspace文件來打開工程,而不是使用以前的.xcodeproj文件
  2. 每次更改了Podfile文件,都需要重新執行一次pod update命令
查找第三方庫:

你如果不知道 cocoaPods 管理的庫中,是否有你想要的庫,那么你可以通過 pod search 命令進行查找,以下是我用 pod search json 查找到的所有可用的庫:

可以在Terminal中輸入:
** pod search AFNetworking **

六、podfilelock

podfilelock

  • Podfile.lock文件最大得用處在于多人開發。對于沒有在Podfile中指定Pods依賴庫版本的寫法,如下:
    pod 'SDWebImage'
    該句話用于獲取當前SDWebImage這個Pods依賴庫的最新版本。
  • 當團隊中的某個人執行完pod install命令后,生成的Podfile.lock文件就記錄下了當時最新Pods依賴庫的版本,這時團隊中的其它人check下來這份包含Podfile.lock文件的工程以后,再去執行pod install命令時,獲取下來的Pods依賴庫的版本就和最開始用戶獲取到的版本一致。
  • 如果沒有Podfile.lock文件,后續所有用戶執行pod install命令都會獲取最新版本的SDWebImage,這就有可能造成同一個團隊使用的依賴庫版本不一致,這對團隊協作來說絕對是個災難!
  • 在這種情況下,如果團隊想使用當前最新版本的SDWebImage依賴庫,有兩種方案:
    更改Podfile,使其指向最新版本的SDWebImage依賴庫;
    執行pod update命令;
    鑒于Podfile.lock文件對團隊協作如此重要,我們需要將它添加到版本管理中。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 項目組件化、平臺化是技術公司的共同目標,越來越多的技術公司推崇使用pod管理第三方庫以及私有組件,一方面使項目架構...
    swu_luo閱讀 22,239評論 0 39
  • 一. CocoaPods的介紹 什么是CocoaPods?CocoaPods是一個負責管理iOS項目中第三方開源庫...
    輝712閱讀 3,994評論 0 7
  • Ruby 安裝 要安裝cocospods 首先需要安裝ruby,可以先安裝xcode,再安裝macport ,最后...
    山天大畜閱讀 1,896評論 0 1
  • 雨中獨行 2016-5-7 又是槐花盛開的季節,一串串,一簇簇,雪白濃密,芳香幽遠。 遠去的歲月,清晰又朦朧。 夜...
    夕陽在山閱讀 253評論 0 0
  • 焦點網絡三期中級班 翟沖【原創】分享第322天 2017.11.15 前幾天莫名收到網上寄來的小禮物,不是我買...
    春暖花開zc閱讀 197評論 0 1