iOS開發(fā)-你不了解的庫(三)

本文涉及的知識點(diǎn):

  • 簡單描述下靜態(tài)庫的創(chuàng)建&使用
  • 簡述CocoaPods
  • 收集的一些問題

靜態(tài)庫創(chuàng)建&使用

1.jpg
  1. 也可以創(chuàng)建.framework結(jié)尾的靜態(tài)庫
  2. 和動態(tài)庫一樣,新建項(xiàng)目以后,修改Mach-O TypeStatic Libiary
  • 修改生成的路徑,在Copy files中可以看到 Subpath,把之前的路徑刪除
  • 添加自己的文件,為了后續(xù)導(dǎo)入方便,刪除StaticFramework.m,在StaticFramework.h中導(dǎo)入其它頭文件。
    2.jpg
  • Copy files中導(dǎo)入其它頭文件,供外部使用
    3.jpg
  • 編譯,在Products中找到.a結(jié)尾的靜態(tài)庫,Show in Finder,把這些文件全部復(fù)制,見圖:
    4.jpg
  • 新建一個項(xiàng)目,直接把這些文件拖入,使用


    5.jpg

這里暫時都用模擬器來操作,不同版本的庫參考之前寫的動態(tài)庫

  • 如何查看一個framework是動態(tài)庫還是靜態(tài)庫?

使用file命令

5.jpg

CocoaPods

CocoaPodsXcode工程中的包管理軟件

為什么要使用CocoaPods

為了節(jié)約開發(fā)時間,我們通常會把一些第三方的庫導(dǎo)入到項(xiàng)目中。在實(shí)踐過程中,會遇到諸多問題。

  1. 第三方庫的后續(xù)迭代問題
  2. 靜態(tài)庫導(dǎo)入時,需要配置Xcode參數(shù)。
  3. 靜態(tài)庫依賴系統(tǒng)動態(tài)庫,需要手動導(dǎo)入
  4. 導(dǎo)入對比參考: 百度地圖SDK

CocoaPods核心概念

  1. Podfile文件,用來寫清楚需要安裝哪些Pod
  2. Specs倉庫,托管在Github上。用來查詢某個pod庫的詳細(xì)信息。
  3. podspec描述文件,用來描述某個pod倉庫信息,包含代碼地址、作者、版本號等信息

CocoaPods是如何管理iOS項(xiàng)目的依賴的?

pod install以后都做了什么?

  1. Podfile文件的解析
  2. 安裝依賴
  • 解析Podfile中的依賴
  • 下載依賴(大部分的依賴都會被下載到 ~/Library/Caches/CocoaPods/Pods/Release/ 這個文件夾中,然后從這個這里復(fù)制到項(xiàng)目工程目錄下的 ./Pods 中,這也就完成了整個 CocoaPods 的下載流程。)
  • 創(chuàng)建Pods.xcodeproj工程
  • 生成workspace

使用CocoaPods的好處?

  1. 避免直接導(dǎo)入文件的原始方式,方便后續(xù)代碼升級
  2. 簡化、自動化集成流程,避免不必要的配置
  3. 自動處理庫與庫之間的依賴關(guān)系
  4. 簡化開發(fā)者發(fā)布代碼流程

關(guān)于use_frameworks!

我們在Podfile文件中使用use_frameworks!后,Pods工程下面的庫會以動態(tài)庫的形式引入,反之則為靜態(tài)庫。

Swift項(xiàng)目中,必須要用use_frameworks!,否則會報(bào)找不到庫文件的錯誤

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容