CocoaPods制作

目錄

● 創(chuàng)建殼工程TZQDemo穷劈,使用cocoaPods創(chuàng)建私有庫TZQTool,并上傳到Github遠(yuǎn)端其垄。

● 修改私有庫的描述文件玷过,上傳到Github遠(yuǎn)端爽丹。

●?驗(yàn)證私有庫有效性。

●?搜索和使用私有庫TZQTool辛蚊。

一粤蝎、前言

組件化越來越流行,以及很多人想把自己寫的組件分享給他人使用袋马。iOS 大部分都采用CocoaPods包管理工具安裝組件初澎,本文總結(jié)了一下如何使用CocoaPods將自己的組件制作成私有庫,方便自己和他人使用虑凛,如有錯(cuò)誤請(qǐng)留言指正碑宴。show me the code, talk is cheap!

二桑谍、制作私有庫

1延柠、在制作私有庫之前,先搜索一下CocoaPods锣披,看看是否有相同名字的庫贞间,如有建議換一個(gè)私有庫的名字。

pod search AAA? ? ? ? ? ? ? ? // AAA是你的私有庫的名字雹仿。

沒有搜索到

2增热、 制作殼工程TZQDemo和TZQTool私有庫。

1)使用X-Code創(chuàng)建一個(gè)工程胧辽,添加PodFile文件峻仇,運(yùn)行pod install,生成一個(gè).xcworkspace工程邑商,點(diǎn)擊運(yùn)行.xcworkspace工程础浮。

2)在工程目錄下添加Components文件夾帆调,用來存放本地組件庫奠骄。使用指令豆同,先查詢一下本地有那些pod repo。

然后進(jìn)入到Components含鳞,使用pod lib create TZQTool 指令生成TZQTool組件影锈。

pod repo? ? ? ? ? ? ? ? ? ?// 查看本地的所有的描述文件。

pod lib create TZQTool? ? // 創(chuàng)建一個(gè)TZQTool的組件蝉绷。

使用pod命令生成組件
目錄介紹

3)添加代碼到TZQTool中鸭廷,修改TZQTool的描述文件,先在本地驗(yàn)證TZQTool是否可用熔吗。TZQTool是生成一個(gè)當(dāng)前時(shí)間的字符串辆床。可用以后將相應(yīng)的文件導(dǎo)入桅狠,先將.h .m等文件拖入到Classes文件夾讼载,將xib、圖片等資源文件拖入到Assets文件夾中跌,刪除replaceMe文件咨堤。刪除原工程的相關(guān)文件,TZQTime.h和TZQTime.m漩符,不然后面通過本地安裝以后有2份一喘,會(huì)有沖突。運(yùn)行pod install命令嗜暴,從本地安裝組件凸克。安裝后clean一下工程,再運(yùn)行看結(jié)果是否正確闷沥。如果正確萎战,說明本地的組件已經(jīng)創(chuàng)建好,下一步準(zhǔn)備上傳到遠(yuǎn)程倉庫狐赡。

拖入文件
安裝后的情況

4)在Github上創(chuàng)建遠(yuǎn)程倉庫撞鹉,修改TZQTool.podspec文件,并將組件上傳到遠(yuǎn)程倉庫颖侄。

Github創(chuàng)建遠(yuǎn)程庫
遠(yuǎn)程庫地址
修改TZQTool.podspec文件

可以使用git客戶端如soourceTree鸟雏、Tower或者git命令上傳組件到遠(yuǎn)程倉庫。這里用命令行做演示览祖。

cd /Users/apple/Desktop/TZQDemo/Components/TZQTool? // 進(jìn)入到文件夾

git init? ? ? ? ? ?// 初始化孝鹊,生成.git記錄文件

add .? ? ? ? ? ?// 所有的文件加入到版本控制

git commit -m"第一次提交TZQTool"? ? ? ? // 將加入到版本控制的文件,提交到本地倉庫

git remote add origin https://github.com/tzq20070604/TZQTool.git? ? ? ? ?// 給本地的倉庫關(guān)聯(lián)到遠(yuǎn)程倉庫

git push origin master -f? ? ? // 將本地倉庫同步到遠(yuǎn)程倉庫展蒂,-f 表示強(qiáng)制提交又活,因?yàn)樘峤磺耙话愣家猽pdate,強(qiáng)制提交不用苔咪。因?yàn)镚ithub上還有readme之類的文件,需要解決沖突再pull柳骄,比較麻煩团赏,基于是初始工程,直接強(qiáng)制push上去即可耐薯。查看遠(yuǎn)程倉庫舔清,可以看到自己提交的內(nèi)容。到此完成把工程提交到遠(yuǎn)程倉庫的任務(wù)曲初。

5)給組件打tag体谒,tag的目的是讓其他人能夠在pod中引用到具體版本。

git tag 1.0? ? ? ? ? // 打上版本臼婆,要和TZQTool.podspec文件中tag一致

git push --tags? ?// 同步版本到遠(yuǎn)程倉庫

關(guān)聯(lián)好遠(yuǎn)程庫

6)制作描述文件的遠(yuǎn)程私有庫TZQSpec抒痒,并且同步描述文件到遠(yuǎn)程私有庫TZQSpec。多個(gè).spec文件可以共用一個(gè)倉庫颁褂。

制作遠(yuǎn)程描述文件私有庫
描述文件的遠(yuǎn)程地址

7)提交描述文件到遠(yuǎn)程倉庫故响。

pod repo add TZQSpec https://github.com/tzq20070604/TZQSpec.git? ? ?// 在本地創(chuàng)建一個(gè)TZQSpec的repo文件,并關(guān)聯(lián)到遠(yuǎn)程痢虹。這個(gè)文件可以在本地看到被去。

本地的TZQSpec還沒有.spec文件

pod repo push TZQSpec TZQTool.podspec --verbose --allow-warnings? ?// 定位到TZQTool.podspec所在的文件夾,向TZQSpec提交podspec奖唯。

同步TZQTool.spec文件到遠(yuǎn)程倉庫
本地的repo
刷新后提交的情況

三惨缆、驗(yàn)證私有庫有效性。

1丰捷、驗(yàn)證.podspec文件的有效性坯墨。使用第一句有警告,建議使用第二句病往。出現(xiàn)TZQTool passed validation.表示驗(yàn)證成功捣染。如果此時(shí)搜索pod search AAA,是搜索到本地的停巷。

pod lib lint --verbose? ?// 可能出現(xiàn)有警告的錯(cuò)誤

pod lib lint --verbose --allow-warnings

檢查.podspec文件是否合法耍攘。注意:1)帶有靜態(tài)庫的還有加條件--use-libraries。?2).podspec 不能帶有本地的依賴畔勤。3)如果有私有依賴庫蕾各,驗(yàn)證時(shí)還要加上依賴的路徑。

pod lib lint --sources=https://github.com/tzq20070604/TZQSpec.git,https://github.com/CocoaPods/Specs.git --use-libraries --allow-warnings

驗(yàn)證成功

2庆揪、發(fā)布.podspec文件到CocoaPods的master分支式曲。成功以后,其他人可以使用pod search AAA 搜索到。

如果是第一次創(chuàng)建吝羞,需要注冊(cè)兰伤。

注冊(cè)trunk

pod trunk register xxx@cocoapods.org 'huangxx' --description='huangxx' macbook pro' --verbose

xxx@cocoapods.org- 一個(gè)真實(shí)存在的郵箱,不一定非得是@cocopods.org钧排,例如QQ敦腔。

huangxx - 用戶名

huangxx's macbook pro - 描述性文字

如果所有的步驟都能成功的話,你會(huì)受到一份郵件卖氨,需要點(diǎn)擊驗(yàn)證下会烙。

3、如果是公有庫還需要發(fā)布到cocoaPods trunk上筒捺。私有庫就不用了。如果私有庫發(fā)布到trunk上會(huì)報(bào)錯(cuò)纸厉。

[!] Source code for your Pod was not accessible to CocoaPods Trunk. Is it a private repo or behind a username/password on http?

私有庫提交trunk報(bào)錯(cuò)

查看trunk

pod trunk me

可以查看你已經(jīng)注冊(cè)的信息系吭,其中包含你的name、email颗品、since肯尺、Pods、sessions躯枢,其中Pods為你往CocoaPods提交的所有的Pod则吟!

添加其他維護(hù)者(如果你的pod是由多人維護(hù)的,你也可以添加其他維護(hù)者)

pod trunk add-owner XPRACSignal wangxx@cocoapods.org

發(fā)布到trunk锄蹂,--allow-warnings可以避免驗(yàn)證警告氓仲。會(huì)去更新Updating spec repo `master`,需要等待一段時(shí)間得糜。

pod trunk push TZQTool.podspec --verbose --allow-warnings

如果你之前提交過Pod敬扛,那么trunk之后你需要去Claim your Pod認(rèn)領(lǐng)下!

報(bào)找不到MBKit repo的錯(cuò)誤朝抖。此時(shí)需要執(zhí)行pod repo update 刷新一下本地repo的索引啥箭。再執(zhí)行上面的命令,如果是第一次發(fā)布需要注冊(cè)登記治宣,還需要使用下面的命令急侥,注冊(cè)郵箱和用戶名,郵箱會(huì)收到一條鏈接侮邀,點(diǎn)擊該鏈接即可認(rèn)證坏怪。

pod trunk register 525835890@qq.com "tzq"

pod repo update --verbose

四、使用生成的私有庫

1豌拙、因?yàn)槭撬接袔焐滦仨毎阉接袔斓膔epo路徑加上,讓pod知道去那里找到這個(gè)私有庫按傅。

source 'https://github.com/tzq20070604/TZQSpec.git'

pod TZQTool?

或者

pod TZQTool? :git=>'https://github.com/tzq20070604/TZQSpec.git',:tag=>'1.0'

2捉超、使用私有庫

Podfile的使用
可以使用

五胧卤、引用文章

iOS組件化

iOS模塊化開發(fā) 之 通過CocoaPods調(diào)用自己iOS模塊化開發(fā) 之 通過CocoaPods調(diào)用自己封裝的私有庫 (一)

iOS代碼組件化(利用CocoaPods創(chuàng)建私有庫)

使用私有Cocoapods倉庫 中高級(jí)用法

Cocoapods公有庫與私有庫

發(fā)布自己的pods到CocoaPods trunk - 簡(jiǎn)書

CocoaPods創(chuàng)建公有和私有Pod庫方法總結(jié) - 簡(jiǎn)書

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市拼岳,隨后出現(xiàn)的幾起案子枝誊,更是在濱河造成了極大的恐慌,老刑警劉巖惜纸,帶你破解...
    沈念sama閱讀 219,270評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件叶撒,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡耐版,警方通過查閱死者的電腦和手機(jī)祠够,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來粪牲,“玉大人古瓤,你說我怎么就攤上這事∠傺簦” “怎么了落君?”我有些...
    開封第一講書人閱讀 165,630評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長亭引。 經(jīng)常有香客問我绎速,道長,這世上最難降的妖魔是什么焙蚓? 我笑而不...
    開封第一講書人閱讀 58,906評(píng)論 1 295
  • 正文 為了忘掉前任纹冤,我火速辦了婚禮,結(jié)果婚禮上主届,老公的妹妹穿的比我還像新娘赵哲。我一直安慰自己,他們只是感情好君丁,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,928評(píng)論 6 392
  • 文/花漫 我一把揭開白布枫夺。 她就那樣靜靜地躺著,像睡著了一般绘闷。 火紅的嫁衣襯著肌膚如雪橡庞。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,718評(píng)論 1 305
  • 那天印蔗,我揣著相機(jī)與錄音扒最,去河邊找鬼。 笑死华嘹,一個(gè)胖子當(dāng)著我的面吹牛吧趣,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,442評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼强挫,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼岔霸!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起俯渤,我...
    開封第一講書人閱讀 39,345評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤呆细,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后八匠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體絮爷,經(jīng)...
    沈念sama閱讀 45,802評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,984評(píng)論 3 337
  • 正文 我和宋清朗相戀三年梨树,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了坑夯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,117評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡劝萤,死狀恐怖渊涝,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情床嫌,我是刑警寧澤,帶...
    沈念sama閱讀 35,810評(píng)論 5 346
  • 正文 年R本政府宣布胸私,位于F島的核電站厌处,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏岁疼。R本人自食惡果不足惜阔涉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,462評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望捷绒。 院中可真熱鬧瑰排,春花似錦、人聲如沸暖侨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽字逗。三九已至京郑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間葫掉,已是汗流浹背些举。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留俭厚,地道東北人户魏。 一個(gè)月前我還...
    沈念sama閱讀 48,377評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親叼丑。 傳聞我的和親對(duì)象是個(gè)殘疾皇子关翎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,060評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容