學了iOS之后梳毙,知道了CocoaPods,查了般婆,知道了怎么安裝到腥,知道了podfile文件,只是知道了大概怎么寫podfile文件蔚袍,后來在podfile中添加第三方庫的時候乡范,pod update 影響到了其他庫的版本,有一些問題一直都是半知半解狀態(tài)啤咽,后來經(jīng)過細心查閱才明白晋辆。好多才用CocoaPods的沒有弄明白的幾個問題:
開始
-
安裝好CocoaPods 在命令行運行 pod --help 命令可以看到pod的 命令文檔 如圖:
pod_Commands.png
Commands:
-
cache: 用來查看pod緩存,或者清除緩存宇整。
- pod cache list ,會輸出本地資源庫中緩存的一些第三方庫
- pod cache clean SDWebImage 刪除指定的本地緩存庫
- pod cache clean -all 刪除全部的本地緩存庫
deintegrate : pod deintegrate 將pod 從項目中刪除瓶佳,
env : pod env 輸出pod的環(huán)境信息(包含當前的Xcode 版本,pod版本鳞青,Ruby版本霸饲,cocoapods的一些插件版本索赏,等等)
init:pod init,會在當前目錄創(chuàng)建一個podfile文件,podfile文件中指明了當前項目Target贴彼。
install :pod install 會根據(jù) Podfile.lock 文件的版本來安裝依賴項潜腻,如果沒有Podfile.lock,會重新創(chuàng)建一個podfile.lock文件
search : pod search podName 用來搜索pod庫,可以搜索到庫的版本信息器仗,和在podfile中的寫法
list : pod list 輸出所有可用的第三方庫(內(nèi)容太多)
plugins : pod plugins 輸出所有的CocoaPods插件
outdated : pod outdated 用來查看哪些庫有更新
setup : pod setup 安裝 CocoaPods 環(huán)境
try: pod try podName 安裝之前可以試用一下
trunk : 用來注冊發(fā)布程序
options
- pod --version : 輸出CocoaPod的版本信息
- --verbose : 顯示更多的調(diào)試信息
- --help 顯示幫助命令
podfile和podfile.lock的區(qū)別
- podfile文件中指明了項目中每個Tagget引用的第三方庫的版本融涣,語法如下:
pod 'AFNetworking' //不顯式指定依賴庫版本,表示每次都獲取最新版本
pod 'AFNetworking', '3.0' //只使用3.0版本
pod 'AFNetworking', '> 3.0' //使用高于3.0的版本
pod 'AFNetworking', '>= 3.0' //使用大于或等于3.0的版本
pod 'AFNetworking', '< 3.0' //使用小于3.0的版本
pod 'AFNetworking', '<= 3.0' //使用小于或等于3.0的版本
pod 'AFNetworking', '~> 0.1.2' //使用大于等于0.1.2但小于0.2的版本
pod 'AFNetworking', '~>0.1' //使用大于等于0.1但小于1.0的版本
pod 'AFNetworking', '~>0' //高于0的版本精钮,一般沒有這么寫的
- podfile.lock文件:保存了已經(jīng)安裝的pod依賴庫版本威鹿,podfile.lock用于多人開發(fā),預防使用的庫版本不一致轨香,的問題忽你,當?shù)谝粋€同事執(zhí)行 pod install 的時候,會同時生成一個podfile.lock文件 臂容,并且將podfile.lock文件納入版本庫科雳,當?shù)诙€同事pod install的時候,獲取到的依賴庫版本和第一個同事獲取到的依賴庫版本一致
pod install 和 pod update 的區(qū)別
- 執(zhí)行 pod install 或者 pod update 都會先 驗證podfile是否存在,不存在拋出異常脓杉。
- pod install 默認不會更新 repo索引糟秘,pod update 默認會更新。
- 使用 pod update 的時候會特別慢球散,可以在后面添加上 --no-repo-update 來禁止更新repo尿赚。
- pod update podName :執(zhí)行的時候會先檢查pod中是否安裝過,如果沒有安裝過蕉堰,會拋出異常凌净,直接使用pod update,不會去檢查這個庫是否被pod安裝過,活直接安裝好屋讶,然后在podfile.lock文件中寫入版本信息冰寻。
- pod install 是不會默認更新pod ,pod update 會默認更新pod 比如: pod 'SDWebImage','~>4.3.0' podfile.lock文件中記錄的版本是4.3.0版本 pod install 會查看當前庫版本是否滿足podfile中指明的條件 大于等于4.3.0版本 小于4.4版本丑婿,4.3.0版本是滿足條件的性雄,就不更新SDWebImage,而pod update 會直接更新到在滿足條件要求下的最新版本羹奉,并將版本信息寫入到podfile.lock文件,如果podfile文件中是 pod 'SDWebImage','4.3.0'這種寫法規(guī)定了只使用4.3.0版本 pod install 和pod update 效果是一樣的约计,都不會更新最新版本