1、注冊CocoaPods:
a.若CocoaPods版本低,需要升級:
sudo gen install cocoapods
pod setup
b.查看自己是否注冊過:pod trunk me
c.如沒有則注冊:(GitHub郵箱、GitHub用戶名)
pod trunk register daixingchuang@163.com " Dxc123" --verbose
2、有2種方式創(chuàng)建工程項目 (我一般使用第一種)
以QYVersionUpdating為例
a方式: 在github上創(chuàng)建好空項目(包含license ,MIT,ReadMe)創(chuàng)建好直接終端執(zhí)行命令行clone到本地:
然后cd到項目執(zhí)行下面命令會在項目中生成 QYVersionUpdating.podspec文件:
pod spec create QYVersionUpdating
b方式:用pod創(chuàng)建
a.
pod lib create QYVersionUpdating
之后會問你四個問題:
.是否需要一個例子工程;
.選擇一個測試框架;
.是否基于View測試;
.類的前綴;
我這里選擇的是:
.Yes;
.Specta/Expecta;
.Yes
.QY
會自動打開新創(chuàng)建的 Xcode 項目
b.向Pod文件夾中添加庫文件和資源,并配置podspec文件
這里,把Classes文件夾里面的ReplaceMe.m文件刪掉,我把一個QYVersionUpdating共有組件放入Pod/Classes中;(注意:要對應(yīng).podspec文件的s.source_files路徑)
然后cd 進入Example文件夾下,執(zhí)行pod install命令;
然后進入項目添加github上的地址
git remote add origin 項目的URL (關(guān)聯(lián)的遠(yuǎn)程庫)
git remote -v (查看遠(yuǎn)程庫信息)
git push -u origin master (推送到GitHub)
強制push:git push -u origin master -f
3、編輯.podspec文件
用Sublime Text 軟件輯或命令行:
open -a xcode QYVersionUpdating.podspec ,
使用Xcode編輯
.podspec文件模板:
Pod:Spec.new do |s|
s.name = "QYVersionUpdating" #名稱
s.version = "0.1.0" #版本號
s.ios.deployment_target = '8.0'#支持的pod最低版本
s.summary = "QYVersionUpdating簡介:好用的APP更新提示庫"#簡介
s.homepage = "https://github.com/Dxc123/QYVersionUpdating"#項目主頁地址
s.license = "MIT"#許可證
s.author = { "Dxc123" => "daixingchuang@163.com" }#作者
s.source = { :git => 'https://github.com/Dxc123/QYVersionUpdating.git', :tag => s.version}#項目的地址
s.requires_arc = true #是否支持ARC
s.source_files = "QYVersionUpdating//.{h,m}"
s.public_header_files = 'QYVersionUpdating//.{h}'
end
注意:常見的寫法:
1、dependency:寫法
s.dependency = 'AFNetworking' , 'SDWebImage'
2、source_files: 寫法
'runtime/'
'runtime/runtime/.{h,m}'
'runtime/*/.h'
'.{h,m}' 表示匹配所有以.h和.m結(jié)尾的文件
''表示匹配所有文件
'**' 表示匹配所有子目錄
3、source: 常見寫法
s.source = { :git => "https://github.com/zhangyqyx/ZYRunTimeCoT.git", :commit => "68defea" }
s.source = { :git => "https://github.com/zhangyqyx/ZYRunTimeCoT.git", :commit => "68defea", :tag => 1.0.0 }
s.source = { :git => "https://github.com/zhangyqyx/ZYRunTimeCoT.git", :tag => s.version }
說明: commit => "68defea" 表示將這個Pod版本與Git倉庫中某個commit綁定
- tag => 1.0.0 表示將這個Pod版本與Git倉庫中某個版本的comit綁定
- tag => s.version 表示將這個Pod版本與Git倉庫中相同版本的comit綁定
4、給QYVersionUpdating打tag**
- 因為cocoapods是依賴tag版本的,所以必須打tag,以后再次更新只需要把你的項目打一個tag
- 然后修改.podspec文件中的版本接著提交到cocoapods官方就可以了.
- 為git打tag, 第一次需要在前面加一個v ;如果出現(xiàn)錯誤,試一下不加v的情況.
git tag "v0.1.0"
- //將tag推送到遠(yuǎn)程倉庫
git push --tags
其他:
- a、查看所有tags
git tag
就會羅列出我們所有的tags
- b、刪除本地tags
- git tag -d + 分支名稱就會刪除本地的分支
- c、刪除遠(yuǎn)程分支
- git push origin :refs/tags/分支名稱 就刪除了遠(yuǎn)程分支
例如: 先刪除本地再刪除遠(yuǎn)程標(biāo)簽, 刪除后需要重新打標(biāo)簽
git tag -d 0.0.1
刪除遠(yuǎn)程標(biāo)簽
git push origin :0.0.1
5、上傳到GitHub
將包含配置好的 .podspec, LICENSE 的項目提交 Git,命令:
git add -A
git commit -m "xxxx"
git push origin master
// 在push之前, 查看spec是否配置有問題
// 驗證本地spec文件是否有誤
pod lib lint
// 驗證遠(yuǎn)程spec文件是否有誤
pod spec lint
如果出現(xiàn)警告性的問題,我們可以直接忽略:
pod lib lint --allow-warnings 或者 pod spec lint --allow-warnings
出現(xiàn)??種情況就說明我們通過了驗證:
QYCategory passed validation.
6、發(fā)布QYVersionUpdating到cocoapod
發(fā)布時會驗證 Pod 的有效性,如果你在手動驗證 Pod 時使用了 --use-libraries 或 --allow-warnings 等修飾符,那么發(fā)布的時候也應(yīng)該使用相同的字段修飾,否則出現(xiàn)相同的報錯。
// --use-libraries 或者--allow-warnings
pod trunk push QYVersionUpdating.podspec或者
pod trunk push QYVersionUpdating.podspec --allow-warnings
出現(xiàn)如下successfully published,就表示發(fā)布成功了
?? QYVersionUpdating (0.1.0) successfully published
?? July 16th, 03:38
?? https://cocoapods.org/pods/QYVersionUpdating
?? Tell your friends!
驗證發(fā)布成功:這時候執(zhí)行命令會出現(xiàn)以下結(jié)果:
pod search QYVersionUpdating
如果搜不到試試下面,或者在cocoapods官網(wǎng)直接查詢
刪除倉庫的索引庫
rm -rf ~/Library/Caches/CocoaPods/search_index.json
刪除spec倉庫
rm -rf ~/.cocoapods/repos/master
更新pod spec庫
pod setup 或者pod repo update --verbose
更新pod spec庫老是失敗,執(zhí)行:
git clone https://git.coding.net/CocoaPods/Specs.git ~/.cocoapods/repos/master
7、更新QYVersionUpdating版本
版本更新跟之前的步驟差不多,這就簡單說一下步驟:
-
添加更新的內(nèi)容,修改.podspec文件中的版本號;
s.version = "0.0.2" //修改0.0.2版本,不能是之前的版本,否則提交不成功
2.上傳代碼到遠(yuǎn)程倉庫;
查看哪些文件改動:
git status
git提交到本地:
git add -A
提交改動的描述
git commit -m “更新XXX”;
提交到遠(yuǎn)程倉庫
git push origin master。
3.打tag并上傳;
git tag '0.0.2'
git push --tags
4.驗證podspec文件并提交到pod發(fā)布。
spec repo //查詢repo
pod spec lint或者pod spec lint --allow-warnings //驗證.podspec文件
pod trunk push PublicLibQiuyh.podspec --allow-warnings //提交pod發(fā)布
pod search PublicLibQiuyh //查詢庫
遇到問題參考:
使用私有Cocoapods倉庫遇到的問題