Cocoapods的原理

weixin_34019929發表於2016-09-02

一、Cocoapods的介紹

  • CocoaPods是iOS專案的依賴管理工具,該Cocoapods專案原始碼在Github上管理。
  • 該專案開始於 2011 年 8 月 12 日,經過多年發展,現在已經成為 iOS 開發事實上最常用的依賴管理標準工具(好像還有一個管理工具:Carthage,但是最主要的還是Cocoapods多一些)。
  • 開發iOS專案不可避免地要使用第三方開源庫,CocoaPods的出現使得我們可以節省配置和更新第三方開源庫的時間。
  • 如果開發專案不使用Cocopods的話,我們要做的步驟可能有:
1.把開源庫的原始碼複製到專案中
2.新增一些依賴框架和動態庫
3.設定-ObjC,-fno-objc-arc等引數
4.管理他們的更新
  • 這些體力活雖然簡單,但毫無技術含量並且浪費時間。在使用CocoaPods之後,我只需要將用到的第三方開源庫放到一個名為Podfile的檔案中,然後執行pod install。CocoaPods就會自動將這些第三方開源庫的原始碼下載下來,並且為我的工程設定好相應的系統依賴和編譯引數。

二、原理和說明

  • 它是將所有的依賴庫都放到另一個名為 Pods 專案中

  • Pods 專案最終會編譯成一個名為 libPods.a 的檔案,主專案只需要依賴這個 .a 檔案即可。這樣,依賴庫原始碼管理工作都從主專案移到了 Pods 專案中。

  • 對於資原始檔,CocoaPods 提供了一個名為 Pods-resources.sh 的 bash 指令碼,該指令碼在每次專案編譯的時候都會執行,將第三方庫的各種資原始檔複製到目標目錄中。

  • CocoaPods 通過一個名為 Pods.xcconfig 的檔案來在編譯時設定所有的依賴和引數。

想深入瞭解每一步:可參考深入瞭解Cocoapods