創(chuàng)建Podspec
首先在項(xiàng)目中創(chuàng)建一個(gè)Podspec
$ pod spec create GQCategory
編輯Podspec
用上述命令創(chuàng)建好的Podspec會(huì)被填上默認(rèn)的參數(shù)并有注釋說(shuō)明了每個(gè)參數(shù)的含義及用法活箕,這里只介紹幾個(gè)常用的參數(shù)
Pod::Spec.new do |s|
s.name = "GQCategory"
s.version = "0.0.5"
s.summary = "常用的分類(lèi)封裝."
s.description = <<-DESC
第一個(gè)podspec
DESC
s.homepage = "https://github.com/gqisabug/GQCategory"
s.license = { :type => "MIT", :file => "LICENSE" }
s.author = { "gqisabug" => "gqlyan419@163.com" }
s.platform = :ios, "7.0"
s.source = { :git => "https://github.com/gqisabug/GQCategory.git", :tag => s.version }
## 這里不支持ssh的地址力麸,只支持HTTP和HTTPS,最好使用HTTPS
## 正常情況下我們會(huì)使用穩(wěn)定的tag版本來(lái)訪(fǎng)問(wèn)育韩,如果是在開(kāi)發(fā)測(cè)試的時(shí)候克蚂,不需要發(fā)布release版本,直接指向git地址使用
## 待測(cè)試通過(guò)完成后我們?cè)侔l(fā)布指定release版本埃叭,使用如下方式
#s.source = { :git => "http://EXAMPLE/O2View.git", :tag => version }
s.source_files = "GQCategory/GQCategory/**/*.{h,m}"
s.requires_arc = true
end
s.name:名稱(chēng)悉罕,pod search 搜索的關(guān)鍵詞
s.version:版本
s.summary:簡(jiǎn)介,pod search 搜索的關(guān)鍵詞
s.homepage:主頁(yè)地址类早,例如Github地址
s.license:許可證
s.author:作者
s.social_media_url:社交網(wǎng)址
s.platform:平臺(tái)
s.source:Git倉(cāng)庫(kù)地址,例如在Github地址后邊加上 .git 就是Git倉(cāng)庫(kù)地址欣范,常見(jiàn)寫(xiě)法如下
s.source = { :git => "倉(cāng)庫(kù)地址", :commit => "68defea" }
s.source = { :git => "倉(cāng)庫(kù)地址", :tag => 1.0.0 }
s.source = { :git => "倉(cāng)庫(kù)地址", :tag => s.version }
- commit => "68defea" 表示將這個(gè)Pod版本與Git倉(cāng)庫(kù)中某個(gè)commit綁定
- tag => 1.0.0 表示將這個(gè)Pod版本與Git倉(cāng)庫(kù)中某個(gè)版本的comit綁定
- tag => s.version 表示將這個(gè)Pod版本與Git倉(cāng)庫(kù)中相同版本的comit綁定
"Directory1/*"
"Directory1/Directory2/*.{h,m}"
"Directory1/**/*.h"
- “*” 表示匹配所有文件
- “*.{h,m}” 表示匹配所有以.h和.m結(jié)尾的文件
- “**” 表示匹配所有子目錄
s.resources:需要包含的圖片等資源文件
s.dependency:依賴(lài)庫(kù),不能依賴(lài)未發(fā)布的
s.dependency:依賴(lài)庫(kù)屏富,如有多個(gè)可以這樣寫(xiě)
s.requires_arc:是否要求ARC
上傳到git
將編輯好的Podspec 上傳到git并給這次更新打上tag并推送到倉(cāng)庫(kù)(需與文件里一致)
- 創(chuàng)建標(biāo)簽
$ git tag v1.0
//標(biāo)簽?zāi)J(rèn)是打在最新的commit上蛙卤,如果想要給某個(gè)之前的操作打颤难,可以先找到歷史記錄
$ git log --pretty=oneline --abbrev-commit
執(zhí)行后輸出如下
6224937 add merge
6224937是commit的id
$ git tag v0.9 6224937
就可以給add merge這個(gè)操作打上標(biāo)簽了
- 查看所有標(biāo)簽
$ git tag
- 刪除標(biāo)簽
//刪除本地的
$ git tag -d v0.1
//刪除遠(yuǎn)程
$ git push origin :refs/tags/v0.9
- 推送標(biāo)簽到遠(yuǎn)程
//推送一個(gè)
$ git push origin v1.0
//推送所有尚未被推送的本地標(biāo)簽
$ git push origin --tags
驗(yàn)證Podspec
$ pod spec lint GQCategory.podspec
//如果依賴(lài)庫(kù)(s.dependency)包含了.a靜態(tài)庫(kù)已日,需要在后面加上--use-libraries
//如果有警告,需要加上 --allow-warnings來(lái)忽略警告以通過(guò)驗(yàn)證
//可以加上--verbose來(lái)查看錯(cuò)誤
發(fā)布Podspec
需要先注冊(cè)
pod trunk register gqlyan419@163.com "gaoqi"
注冊(cè)成功后驗(yàn)證郵箱就可以發(fā)布自己的pod了
pod trunk push GQCategory.podspec
//這里也可以加上驗(yàn)證時(shí)的參數(shù)--allow-warnings 等
版本升級(jí)
修改 .podspec 中的 s.version 為更高的版本號(hào)飘千,并修改 s.source 中對(duì)應(yīng)的 Git 版本护奈。提交到Git霉旗,并打上對(duì)應(yīng)tag蛀骇。然后再講修改后的pod spec發(fā)布到Cocoapods就可以完成更新。
-建議s.source采用
s.source = { :git => "倉(cāng)庫(kù)地址", :tag => s.version }
寫(xiě)法简僧,這樣就與s.version綁定了岛马,每次更新只需要改版本號(hào)即可
創(chuàng)建私有庫(kù)
//打開(kāi)隱藏的命令:
defaults write com.apple.finder AppleShowAllFiles -bool true
//關(guān)閉隱藏的命令:
defaults write com.apple.finder AppleShowAllFiles -bool false
接著需要重啟一下 Finder, 可以按住 option + 右鍵 Finder 圖標(biāo)選擇重啟伞矩。然后打開(kāi)隱藏目錄 .cocoapods (這個(gè)目錄在你的個(gè)人目錄底下, ~/.cocoapods 或 /Users/[username]/.cocoapods)
1.創(chuàng)建一個(gè)私有的 Spec Repo
在自己的私有g(shù)it服務(wù)器(GitHub,Gitlab,Coding, Bitbucket等)上創(chuàng)建一個(gè)空的倉(cāng)庫(kù)乃坤。
2.添加私有Spec Repo
然后打開(kāi)終端沟蔑,輸入命令行:
pod repo add [本地Spec Repo名稱(chēng)][遠(yuǎn)程Spec Repo地址]
例如:
pod repo add MySpecs https://xxxxxxxxxxx/MySpecs.git
這里的xxxxxxx就是自己的git地址。
此時(shí)跳轉(zhuǎn)到文件夾:repos厅须。就是:
~/.cocoapods/repos/
除了原來(lái)的master,會(huì)出現(xiàn)一個(gè)你自己的MySpecs: cd進(jìn)去 執(zhí)行:
pod repo lint
時(shí)間較長(zhǎng)嚷硫,耐心等待
3.驗(yàn)證Podspec
參考上面的步驟新建Podspec并驗(yàn)證成功后提交到倉(cāng)庫(kù)
4.把要共享的庫(kù)添加到私有Spec Repo中
執(zhí)行命令:
pod repo push [本地Spec Repo名稱(chēng)][podspec文件路徑] --allow-warnings
例如:
pod repo push MySpecs ~/本地路徑.podspec --allow-warnings
成功后能在你的MySpecs里面看到新加的庫(kù)
5.使用
和原來(lái)的常規(guī)的使用cocoapods一樣,不過(guò)需要在Podfile里面添加:
source 'http://xxxxxxxxxxx/zhanggui/MySpecs.git' //你的私有庫(kù)的地址
source 'https://github.com/CocoaPods/Specs.git' //原來(lái)的系統(tǒng)的地址