自定義CocoaPods庫(kù)

? ? ? 在做一些ios項(xiàng)目開(kāi)發(fā)的時(shí)候,我們的很多項(xiàng)目中可能用到了一些公用的模塊诈胜,我們一直在這些項(xiàng)目中來(lái)回copy,paste冯事,非常的不方便焦匈,有的時(shí)候這些模塊有一些修改,我們?cè)谑褂玫臅r(shí)候都不知道要去哪個(gè)項(xiàng)目中copy昵仅。這個(gè)時(shí)候我們可以使用自定義的CocoaPods庫(kù)來(lái)封裝這些模塊缓熟,這樣我們?cè)谑褂玫臅r(shí)候只需要使用cocoPods去導(dǎo)入這個(gè)模塊就可以了,這樣既減少了我們的工作量摔笤,也能很好的去管理修改我們的模塊够滑。下面就來(lái)講解怎么去創(chuàng)建一個(gè)自定義的CocoaPods庫(kù)。

第一步:登錄github(如果沒(méi)有賬號(hào)自己去創(chuàng)建一個(gè))

第二步:我們?cè)趃ithub上創(chuàng)建一個(gè)倉(cāng)庫(kù)(注:公有的私有的都可以吕世,區(qū)別在于公有的能被所有人看到彰触,私有的只能被指定的人看到)

圖1-1

如圖1-1所示,勾選README命辖,并且選擇Objective-C 渴析,license選擇MIT License晚伙,點(diǎn)擊創(chuàng)建即可

第三步:打開(kāi)終端,cd到桌面(cd到你想要的路徑下都可以)俭茧,執(zhí)行g(shù)it clone '倉(cāng)庫(kù)地址',就會(huì)把我們剛才創(chuàng)建的倉(cāng)庫(kù)clone到本地

第四步:在剛才clone下來(lái)的主目錄下創(chuàng)建一個(gè)新的文件夾,命名為Classes(名字可以自己定義)漓帚,用來(lái)存放我們需要封裝的一些代碼文件或者資源文件母债,我們這里以一個(gè).h文件為例

第五步:創(chuàng)建.podspec文件。再次打開(kāi)終端尝抖,cd到剛才clone下來(lái)的文件夾的根目錄下執(zhí)行 'pod spec create TestRepository',就會(huì)在根目錄下生成一共TestRepository.podspec文件毡们。這個(gè)命名可以自己定義(注意:這個(gè)文件名就是我們之后通過(guò)cocoaPods導(dǎo)入的庫(kù)名)

這個(gè)時(shí)候我們剛才的主文件夾的目錄如下:


圖1-2

第六步:編輯.podspec文件,如圖所示:

圖1-3

這是.podspec文件最基本的格式。
name:倉(cāng)庫(kù)名稱(chēng)昧辽,與.podspec文件名保持一致
version:倉(cāng)庫(kù)版本號(hào)
summary:倉(cāng)庫(kù)描述
homepage:倉(cāng)庫(kù)的主頁(yè)地址
license:pod庫(kù)許可證的類(lèi)型
author:可以填寫(xiě)倉(cāng)庫(kù)創(chuàng)建者的一些相關(guān)信息
platform:支持的平臺(tái)
deployment_target:支持的最低系統(tǒng)版本
source:固定格式衙熔,把倉(cāng)庫(kù)的地址復(fù)制進(jìn)去就可以了
source_files:資源文件(我們這里只有一個(gè).h文件可以寫(xiě)的比較簡(jiǎn)單。如果有復(fù)雜的目錄結(jié)構(gòu)和多個(gè)或者多種類(lèi)型的資源文件可以參考官方文檔:CocoaPods Guides - Podspec Syntax Reference

第七步:將整個(gè)文件夾修改的內(nèi)容提交到github上(git 語(yǔ)句不熟悉的可以自行百度)

第八步:創(chuàng)建tag ,在終端cd到剛才的根目錄下搅荞,分別執(zhí)行g(shù)it語(yǔ)句
git tag 0.0.1(這里的0.0.1版本號(hào)需要與.podspec文件中寫(xiě)的版本號(hào)保持一致)
git push --tags?

圖1-4

第九步:版本號(hào)提交成功以后就可以進(jìn)行驗(yàn)證了cd到根目錄
本地驗(yàn)證:pod lib lint --allow-warnings --sources='https://github.com/CocoaPods/Specs.git'
遠(yuǎn)程驗(yàn)證:pod spec lint --allow-warnings --sources='https://github.com/CocoaPods/Specs.git'
--allow-warnings:允許警告存在红氯,如果在驗(yàn)證的時(shí)候因?yàn)榫娑怀晒Γ梢蕴砑?-allow-warnings來(lái)驗(yàn)證(注意:有些file not found的警告是因?yàn)閜odspec文件配置錯(cuò)誤而造成的咕痛,需要修改podspec文件內(nèi)容痢甘,并不能直接忽略)
--sources='https://github.com/CocoaPods/Specs.git' :指定下載源,如果我們自定義庫(kù)引用了其他第三方的庫(kù)茉贡,則需要再.podspec文件中添加依賴塞栅,驗(yàn)證的時(shí)候可能會(huì)報(bào)錯(cuò),我們?cè)隍?yàn)證的時(shí)候指定一下下載源就可以了(如果沒(méi)有引用其他第三方庫(kù)或者直接驗(yàn)證的時(shí)候不報(bào)錯(cuò)腔丧,就可以不添加這個(gè))

驗(yàn)證成功如下圖:

圖1-5
圖1-6

第十步:上傳到CocoaPods中放椰,因?yàn)閯偛盼覀儎?chuàng)建的是公有庫(kù),我們則需要?jiǎng)?chuàng)建或者登陸trunk號(hào)
終端執(zhí)行:pod trunk me 檢測(cè)是否登錄,如果有則會(huì)顯示trunk號(hào)的信息愉粤,如果沒(méi)有則需要?jiǎng)?chuàng)建
終端執(zhí)行:pod trunk register?郵箱名 用戶名 --description='描述'? ?創(chuàng)建完畢之后可以提交了
終端執(zhí)行:pod trunk push TestRepository.podspec --allow-warnings 成功如下圖:

圖1-7

這個(gè)時(shí)候我們的自定義庫(kù)就創(chuàng)建完畢了砾医,本地更新pod repo update,然后就可以在項(xiàng)目中導(dǎo)入了

如果我們剛才創(chuàng)建的是私有庫(kù),提交方式與公有庫(kù)不同
1.cd到根目錄科汗,終端執(zhí)行 "pod repo add TestRepository 倉(cāng)庫(kù)地址 "這個(gè)TestRepository可以自己命名,這個(gè)只需要執(zhí)行一次藻烤,以后升級(jí)版本庫(kù)的時(shí)候不需要在執(zhí)行這一步操作,當(dāng)然头滔,如果本地的被刪除了則需要重新再執(zhí)行一次(可在? ?/用戶/電腦名/.cocoapods/repos? ?這個(gè)路徑下查看剛才添加的文件夾)
2提交怖亭,終端執(zhí)行 "pod repo push TestRepository TestRepository.podspec --allow-warnings"第一個(gè)TestRepository是上一步創(chuàng)建的文件夾名,第二個(gè)TestRepository是.podspec文件名
成功之后更新本地倉(cāng)庫(kù)pod repo update然后就可以在項(xiàng)目中使用了,需要注意的是,私有倉(cāng)庫(kù)在導(dǎo)入到項(xiàng)目的時(shí)候需要再Podfile文件中添加 "source '倉(cāng)庫(kù)地址'"

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末坤检,一起剝皮案震驚了整個(gè)濱河市兴猩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌早歇,老刑警劉巖倾芝,帶你破解...
    沈念sama閱讀 218,525評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件讨勤,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡晨另,警方通過(guò)查閱死者的電腦和手機(jī)潭千,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)借尿,“玉大人刨晴,你說(shuō)我怎么就攤上這事÷贩” “怎么了狈癞?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,862評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)茂契。 經(jīng)常有香客問(wèn)我蝶桶,道長(zhǎng),這世上最難降的妖魔是什么掉冶? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,728評(píng)論 1 294
  • 正文 為了忘掉前任真竖,我火速辦了婚禮,結(jié)果婚禮上郭蕉,老公的妹妹穿的比我還像新娘疼邀。我一直安慰自己,他們只是感情好召锈,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布旁振。 她就那樣靜靜地躺著,像睡著了一般涨岁。 火紅的嫁衣襯著肌膚如雪拐袜。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,590評(píng)論 1 305
  • 那天梢薪,我揣著相機(jī)與錄音蹬铺,去河邊找鬼。 笑死秉撇,一個(gè)胖子當(dāng)著我的面吹牛甜攀,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播琐馆,決...
    沈念sama閱讀 40,330評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼规阀,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了瘦麸?” 一聲冷哼從身側(cè)響起谁撼,我...
    開(kāi)封第一講書(shū)人閱讀 39,244評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎滋饲,沒(méi)想到半個(gè)月后厉碟,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體喊巍,經(jīng)...
    沈念sama閱讀 45,693評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評(píng)論 3 336
  • 正文 我和宋清朗相戀三年箍鼓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了崭参。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,001評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡款咖,死狀恐怖阵翎,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤叫乌,帶...
    沈念sama閱讀 35,723評(píng)論 5 346
  • 正文 年R本政府宣布演训,位于F島的核電站,受9級(jí)特大地震影響兼砖,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評(píng)論 3 330
  • 文/蒙蒙 一蟹肘、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧俯树,春花似錦帘腹、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,919評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至陋率,卻和暖如春球化,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背瓦糟。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,042評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工筒愚, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人菩浙。 一個(gè)月前我還...
    沈念sama閱讀 48,191評(píng)論 3 370
  • 正文 我出身青樓巢掺,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親劲蜻。 傳聞我的和親對(duì)象是個(gè)殘疾皇子陆淀,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評(píng)論 2 355

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