CocoaPod出來很久了。一個第三方庫管理的工具。CocoaPods的項目源碼在https://github.com/CocoaPods/Specs上管理。
2016年5月10號,CocoaPods終于在其官方博客上宣布正式發布CocoaPods 1.0。與此同時,公開了相應的Mac版App——CocoaPods App 1.0。雖然已經出來很多年了,可見CocoaPods團隊的匠人精神。
安裝CocoaPods 準備工作
查看ruby版本
ruby -v
查看ruby源
gem sources -l
// 更新升級gem 做技術的應該還是會翻墻的
sudo gem update —system
查看gem 版本
gem -v
安裝篇
OS X 10.11 以前安裝命令為:
// 安裝cocoapods
sudo gem install cocoapods
Mac系統為OS X EL Capitan安裝命令為:
sudo gem install -n /usr/local/bin cocoa pods
卸載CocoaPods
sudo gem uninstall cocoapods
常用操作
我們可以用CocoaPods Mac app來給自己的工程創建Podfile文件
將所有第三方的Podspec索引文件更新到本地的~/.cocoapods/repos目錄下
pod setup?
如果更新太慢可以用命令查詢大小確定是否在下載
cd ~/.cocoapods/repos 進入目錄
du -sh *
這個是我打印自己的目錄詳情 551M? ? master
以后可以每周更新一次
初始化Podfle文件 并且格式也有
pod init?
-----------------------------各種文件------------------------------
1. Podfile文件
項目的第三方庫的依賴以及項目的基本配置
2. Podfile.lock文件
最后一次更新Pods時, 保存所有第三方框架的版本號
3. pods目錄
保存通過pod install或者pod update下載下來的第三方開源庫的源代碼
4. xxx.xcworkspace文件
重新生成一個工作空間,打開這個工程文件來進行開發
-----------------------------Podfile文件結構------------------------------
source'http://192.168.1.1/qiqi/JSONModelConfigurationFile.git'
source'https://github.com/CocoaPods/Specs.git'
platform :ios,'8.0'
use_frameworks!
inhibit_all_warnings!
target'MyProjectName'do
pod'SDWebImage','3.7.5'
pod'FMDB','2.6'
end
-----------------------------Podfile參數解釋------------------------------
1. platform :iOS, '7.0'
指定了開源庫應該被編譯在哪個平臺以及平臺的最低版本。
若不指定平臺版本,官方文檔里寫明各平臺默認值為iOS:4.3,OS X:10.6,tvOS:9.0,watchOS:2.0
2. inhibit_all_warnings!
屏蔽cocoapods庫里面的所有警告
這個特性也能在子target里面定義,如果你想屏蔽某pod里面的警告也是可以的:
pod'MyProject', :inhibit_warnings =>true
3. xcodeproj,現在被project代替,這個變量就別使用了
允許你指定需要鏈接的工程
4. use_frameworks!
使用frameworks動態庫替換靜態庫鏈接
(1)swift項目cocoapods 默認 use_frameworks!
(2)OC項目cocoapods 默認 #use_frameworks!
5. workspace
指定應該包含所有projects的Xcode workspace.
如果沒有顯示指定workspace并且在Podfile所在目錄只有一個project,那么project的名稱會被用作于workspace的名稱
6. project
默認情況下是沒有指定的,當沒有指定時,會使用Podfile目錄下與target同名的工程:(我們只有一個工程MyProject)
# MyProject這個Target只有在MyProject工程中才會鏈接
target 'MyProject' do
project 'MyProject'
...
end
5. target 'xxxx' do
end
指定特定Target的依賴庫
可以嵌套子Target的依賴庫
6. inherit! :search_paths
明確指定繼承于父層的所有pod,默認就是繼承的
7. source
指定specs的位置,自定義添加自己的podspec。公司內部使用
cocoapods 官方source是隱式的需要的,一旦你指定了其他source 你就需要也把官方的指定上
例如:
source'http://192.168.1.1/qiqi/JSONModelConfigurationFile.git'
source'https://github.com/CocoaPods/Specs.git
-----------------------------常用指令------------------------------
1. pod setup
將所有第三方的Podspec索引文件更新到本地的~/.cocoapods/repos目錄下,更新本地倉庫。
2. pod repo update
執行 pod repo update更新本地倉庫,本地倉庫完成后,即可搜索到指定的第三方庫,作用類似pod setup。不過這個命令經常不單獨調用。比如執行pod setup、pod search、pod install、pod update會默認執行pod repo update
3. pod search xxx
查找某一個開源庫。查找開源庫之前,默認會執行pod repo update指令
4. pod list
列出所有可用的第三方庫.現在已經2.4W+了.還在不斷地增長
5. pod install
會根據Podfile.lock文件中列舉的版本號來安裝第三方框架
如果一開始Podfile.lock文件不存在, 就會按照Podfile文件列舉的版本號來安裝第三方框架
安裝開源庫之前, 默認會執行pod repo update指令
6. pod update
將所有第三方框架更新到最新版本, 并且創建一個新的Podfile.lock文件
安裝開源庫之前, 默認會執行pod repo update指令
7. pod install --no-repo-update
8. pod update --no-repo-update
安裝開源庫之前, 不會執行pod repo update指令