一直想制作一個pod庫论矾,然后寫了一個demo
XXAlertTransition
蔗崎,封裝了幾個present轉(zhuǎn)場的動畫逐哈,效果可點擊XXAlertTransition github地址查看吗冤。這里講的是如何制作公有庫侮腹,制作過程就用XXAlertTransition
作為例子了嘲碧,第一次制作,也遇到了一些問題父阻,記錄一下愈涩,代碼提的比較散,后續(xù)需要優(yōu)化加矛。
制作pod公有庫步驟
-
GitHub上創(chuàng)建一個倉庫
XXAlertTransition
履婉。
填上倉庫名,直接點Create repository斟览。
image.png -
在本機
cd
到存放這個庫的文件夾下毁腿,終端輸入pod lib create XXAlertTransition
image.png -
創(chuàng)建pod會問幾個問題,我這里是用
Swift
寫的代碼苛茂,后續(xù)制作稍有不同已烤,根據(jù)自己情況填寫即可。
image.png -
創(chuàng)建完畢之后味悄,會自動創(chuàng)建一個
XXAlertTransition
文件夾草戈,里面有pod的相關(guān)信息塌鸯,并且自動打開此project侍瑟。
image.png -
將classes里面的
ReplaceMe.Swift
文件用自己pod的相關(guān)文件替代。(我把ReplaceMe.Swift
刪掉丙猬,把之前寫好的demoXXAlertTransition
封裝好的幾個類直接拖進來)
image.png -
修改
XXAlertTransition.podspec
文件
注意此圖有問題涨颜,看下面的圖,不刪是想讓自己記住要仔細.png
傻了茧球,homepage填錯了(導(dǎo)致下面pod spec lint
找不到庫報錯,??,仔細呀)钻趋。應(yīng)該是下面這樣:
image.png
-
??:如果是
Swift
庫,這里最好還要加上s.swift_version = '5'督暂。(我沒有加,所以第9步我出錯了穷吮,朋友們?yōu)榱斯?jié)省時間可以直接在這里就加上逻翁,同時記得檢查自己的homepage,source信息呀捡鱼。homepage八回、 source對應(yīng)的是遠端庫的信息)
homepage地址.png
source地址.png ??:如果制作的庫有依賴項,記得需要填充
s.dependency
的內(nèi)容
提交代碼到遠程倉庫(就是制作的這個本地庫提交和遠程庫關(guān)聯(lián))驾诈。
-
添加標(biāo)簽缠诅。必須要這一步,這個標(biāo)簽對應(yīng)上面
XXAlertTransition.podspec
中的s.version
乍迄。 到時cocopods倉庫也是通過版本關(guān)聯(lián)起來的管引,這樣比較清晰。
image.png
image.png
- lint檢查倉庫就乓,終端執(zhí)行
pod spec lint
汉匙。
-
由于開始第6步
s.homepage
、s.source
填錯所以出現(xiàn)了以下錯誤生蚁。更正后正常噩翠。
image.png -
由于開始第6步未填
s.swift_version
,所以報了以下錯誤邦投,添加后正常伤锚。
image.png -
在
XXAlertTransition.podspec
加入下面這個話:
s.swift_version = '5'
image.png -
重新
pod spec lint
成功啦。(如果有依賴項需要用pod spec lint --use-libraries
志衣,我制作的這個庫沒有依賴項請注意)
image.png
- 推送podspec到pod庫屯援,終端執(zhí)行
pod trunk push XXAlertTransition.podspec
-
由于我是第一次推送,會出現(xiàn)以下問題:
image.png -
解決:注冊一個session念脯。然后去郵箱驗證一下狞洋。
pod trunk register shine9328@qq.com 'weimengxue' --description='A coder.'
image.png -
驗證完畢之后,會看到:
image.png -
再重新
pod trunk push XXAlertTransition.podspec
就可以成功啦
image.png
- 這里看一下遠程倉庫自動創(chuàng)建的
README
-
未推送podspec到pod庫時是這樣的绿店,描述中沒有相關(guān)信息:
image.png -
推送成功后:
image.png
- 迫不及待的
pod search XXAlertTransition
看能不能搜到我的庫吉懊,好的,為啥沒有假勿!注意到上面的截圖借嗽,
CocoaPods 1.10.0 is available.
,而我現(xiàn)在的版本:
image.png
更新cocopods版本和repos后转培,pod search XXAlertTransition
還是找不到這個庫恶导,我自己創(chuàng)建的demo中在Podfile
文件中引入此庫,pod install
可以pod下來這個庫浸须,pod search
顯示的并不及時惨寿。
image.png
??:XXAlertTransition
邦泄,0.1.4
之后的才有效,之前的版本代碼有問題裂垦。
制作pod公有庫遇到的問題
-
pod lib lint
和pod spec lint
區(qū)別虎韵。
-
pod lib lint
lint的是本地的庫 -
pod spec lint
lint的是遠端的庫
因為tag我修改過代碼,把遠端的tag取消過缸废,所以pod spec lint
一直失敗包蓝,而pod lib lint
是成功的。倒騰了半天企量,后直接提升了podspec版本號解決了测萎。
注意制作的庫,公開的訪問級別設(shè)置對届巩,普通的加上
public
硅瞧,可以繼承的類需要設(shè)置成open
。 我因為直接從demo中拖過來的代碼恕汇,之前沒有注意到導(dǎo)致pod完demo訪問不到我的文件腕唧。注意
pod spec lint
前最好pod lib lint
以下,以防有語法錯誤瘾英。pod spec lint
功能很強大枣接,編譯問題會有提示。修改pod版本步驟(比如我之前提交的pod庫有bug需要修改)
- 在本地先修改好缺谴,git提交到遠端但惶。因為有bug修復(fù),這里把
podspec
號也提升一個小版本湿蛔,注意修改s.version
- 對應(yīng)
s.version
設(shè)置git tag
膀曾,并將tag提交到遠端 pod spec lint
pod trunk push XXAlertTransition.podspec
- 用到的地方
pod update
即可以生效,pods庫里面的版本也提升了阳啥。
參考:
我的制作庫系列之: iOS制作一個pod私有庫文檔
我的制作庫系列之: iOS 制作本地庫Development Pods
cocoapods制作庫的文檔
cocoapods制作Private Pods文檔
cocoapods制作公開Pods文檔
https://juejin.cn/post/6844903810482061325