cocoapods的安裝
1.gem簡(jiǎn)介
Gem是一個(gè)管理Ruby庫(kù)和程序的標(biāo)準(zhǔn)包蝶柿,它通過(guò)Ruby Gem(如 http://rubygems.org/ )源來(lái)查找饼暑、安裝亚享、升級(jí)和卸載軟件包,非常的便捷。
-
常用命令
- 查看gem版本
gem --version
- 更新
gem update --system
- 查看數(shù)據(jù)源
gem source
- 安裝軟件包
gem install 軟件包名稱
- 卸載安裝包
gem uninstall
- 查看gem版本
2.使用gem 安裝cocoapods
sudo gem install cocoapods
使用cocoapods集成第三方
1.檢索第三方框架
-
pod search 框架關(guān)鍵字
- 內(nèi)部原理:從本地緩存的"第三方框架描述信息" 生成的檢索文件中檢索到 相關(guān)框架的信息
- 常見錯(cuò)誤:unable to find....
- 刪除cocoapods索引文件
2.安裝第三方框架
- 創(chuàng)建 Podfile 文件, 到自己工程內(nèi)(一級(jí)目錄)
- Podfile 文件作用:其實(shí)就是使用ruby語(yǔ)法編寫的 "框架依賴描述文件"; 就是告訴cocoapods需要下載集成哪些框架
- 創(chuàng)建命令:
pod init
- 安裝框架
- 安裝命令
pod install
- 原理:直接就是根據(jù) Podfile 文件從本地索引庫(kù)中找到框架信息, 然后下載集成
- 找不到目標(biāo)框架
- 更新本地框架信息源信息:
pod install --no-repo-update
(快速)
- 更新本地框架信息源信息:
- 安裝命令
- 生成的重要文件 Podfile.lock
- 作用: 記錄著上一次下載的框架最新版本
- pod install 和 pod update 區(qū)別
- pod install: 如果Podfile.lock文件存在, 直接從此文件中讀取框架信息下載安裝, 如果不存在, 依然會(huì)讀取Podfile文件內(nèi)的框架信息,下載好之后, 再根據(jù)下載好的框架信息, 生成Podfile.lock文件
- pod update 不管Podfile.lock是否存在, 都會(huì)讀取Pod file文件的的框架信息去下載
- 主要區(qū)別在于, Podfile文件內(nèi)的框架信息, 版本描述沒(méi)有指定具體版本
cocoapods機(jī)制圖解
機(jī)制圖解.png
后會(huì)講講程索引庫(kù)保存到本地
檢索索引文件:由本地索引庫(kù)轉(zhuǎn)換成的json文件 使用pod search 會(huì)從索引文件中找到第三方框架的信息
pod install:會(huì)從本地索引文件中找到第三方框架的描述信息角撞,再由第三方框架描述信息里的遠(yuǎn)程地址下載到源碼
上傳自己的代碼到cocoapods
1.創(chuàng)建工程
2.上傳到github,并且打好標(biāo)簽
3.配置并上傳框架的 PodSpec 文件, 并使用trunk的方式上傳
- 創(chuàng)建命令
pod spec create 工程名
- 填寫描述信息
- s.description 的長(zhǎng)度要大于 s.summary
- s.license = "MIT"
- s.source 填寫項(xiàng)目遠(yuǎn)程地址和tag
- 驗(yàn)證描述信息
pod spec lint podspec文件
- 注冊(cè)trank
pod trunk register 664095924@qq.com 'closer' --verbose
- 通過(guò)trunk推送podspec文件
pod trunk push
4.更新本地pod 第三方框架信息數(shù)據(jù)源
pod setup
可以省略這一步驟, 因?yàn)樯鲜鎏峤? 直接更新了本地索引庫(kù)
5.測(cè)試
先刪除本地索引文件,再使用pod search 命令搜索自己的框架, 如果可以搜索到, 那么代表審核通過(guò)了
![](http://yinquan_123.coding.me/CloserBlog/img/2017-11-27/2.png)
cocoapods重要路徑
本地索引庫(kù): /Users/closer/.cocoapods/repos/master/Specs
檢索索引文件: /Users/closer/Library/Caches/CocoaPods