私有Pod制作和后續(xù)升級(jí)

開篇:

入戲:

有一天雀鹃,亙亙深夜做了個(gè)夢循衰,夢到自己成為了一個(gè)牛逼的巨佬,坐擁上千萬的開發(fā)者迷弟迷妹粉絲褐澎,開源框架上千款……
一次粉絲見面會(huì)結(jié)束会钝,觀眾散去,亙亙看見會(huì)議的角落坐著一位年紀(jì)尚小的開發(fā)者獨(dú)自發(fā)悶工三,走近聊了幾句迁酸,小弟弟告訴他:原來是一個(gè)剛?cè)胄械拈_發(fā)者,對(duì)私有Pod的房集成不是太明白俭正,因?yàn)檫@個(gè)問題奸鬓,還丟失了一個(gè)很好的就業(yè)機(jī)會(huì)。于是掸读,亙亙告訴他串远,等他回去找時(shí)間出一篇關(guān)于私有Pod集成的博客,幫助這類人搞懂這里面的彎彎繞繞儿惫。于是澡罚,這篇博客誕生了!

好的故事未完肾请,美好即將待續(xù)……

私有pod留搔,我們都不陌生,那么我們?nèi)绻胱寗e的開發(fā)者肆無忌憚的幾個(gè)命令行就嵌入我們的自己做的私有庫使用铛铁,這也是件自豪而牛逼的事隔显,那么却妨,如何制作私有Pod呢?
其實(shí)制作私有pod括眠,把主要的幾個(gè)步驟掌握住彪标,就很簡單了,下面我簡要講解下私有pod的制作步驟以及后續(xù)升級(jí)的步驟

目錄

  • 第一步:創(chuàng)建私有庫工程
  • 第二步:私有庫本地的配置和集成
  • 第三步:Specs 文件倉庫管理
  • 第四步:關(guān)于后續(xù)私有庫升級(jí)

第一步:創(chuàng)建私有庫工程

cd到你想放項(xiàng)目的本地目錄下掷豺,比如桌面上新建一個(gè)叫“podKit”的文件夾捞烟,那么,我們依次執(zhí)行以下命令:

  • cd desktop
  • pod lib create podKit

成功后會(huì)出現(xiàn)以下代碼萌业,按需選擇填寫即可

# 選擇編程語言
What language do you want to use?? [ Swift / ObjC ]
> Objc  

# 在你的項(xiàng)目中是否創(chuàng)建一個(gè)demo工程坷襟,為了方便測試,我選擇了Yes
Would you like to include a demo application with your library? [ Yes / No ]
 > Yes  

# 測試框架選擇哪一個(gè)
Which testing frameworks will you use? [ Specta / Kiwi / None ]
 > None

#要不要做視圖測試
Would you like to do view based testing? [ Yes / No ]
 > Yes

# 類前綴名
What is your class prefix?
 > SH
1-1.png

Pod私有庫創(chuàng)建成功后會(huì)自動(dòng)打開項(xiàng)目~

第二步:私有庫本地的配置和集成

  1. 找到剛才創(chuàng)建的podKit文件夾生年,點(diǎn)擊入去婴程,里面的目錄如下:
1-2.png
  1. 把你想要做成私有庫的文件,整理好抱婉,目錄結(jié)構(gòu)都調(diào)整好档叔,一股腦拷貝到podKit這個(gè)目錄下面,這個(gè)文件夾下面默認(rèn)有個(gè)Classes和Assets文件夾蒸绩,我個(gè)人的習(xí)慣衙四,都會(huì)把它們刪掉,直接把我將要做成私有庫的文件拷貝進(jìn)來患亿,類似這樣:


    1-3.png
  2. 接下來传蹈,打開項(xiàng)目,打開那個(gè)Example文件下下面的xxx.xcworkspace步藕,這個(gè)不用我多說了吧惦界,這個(gè)時(shí)候你展開的項(xiàng)目,展開Pods -- 啥也沒有咙冗,哈哈哈沾歪,別急,往下繼續(xù)看:

  3. 編輯podspec文件
    編輯這個(gè)文件之前雾消,需要去github賬號(hào)上灾搏,新建一個(gè)遠(yuǎn)程倉庫,把地址拷過來洗干凈備用立润,新建遠(yuǎn)程倉庫狂窑,我在這不做說明了

它的位置就在根目錄下,就是那個(gè)podKit. podspec范删,在xcode里面打開直接編輯它就行蕾域,上個(gè)圖吧,這個(gè)玩意其實(shí)也簡單:

1-5.png

這個(gè)玩意編輯的時(shí)候一定要小心到旦,最容易出錯(cuò)的一個(gè)環(huán)節(jié)旨巷,驗(yàn)證spec文件的時(shí)候如果這個(gè)文件有問題會(huì)報(bào)錯(cuò)

  1. cd到我們的Example目錄下,執(zhí)行:pod update --no-repo-update 命令行
    這個(gè)時(shí)候再看下剛才的目錄添忘,上圖我已經(jīng)標(biāo)注好了采呐,ClassA 就添加進(jìn)來了,因?yàn)镃lassB文件夾為空搁骑,所以沒有添加進(jìn)來

注意:你要不聽我的話斧吐,不cd到我說的目錄,那你就等著看紅吧(因?yàn)樵谀莻€(gè)目錄下才有PodFile文件呀)仲器,還有別問為啥update后面為啥跟那些小可愛煤率,因?yàn)槟氵@個(gè)時(shí)候還沒有遠(yuǎn)程倉庫

  1. 然后這時(shí)候在你本地測試一下私有庫是否可以使用

在你的工程下面的Example下,有個(gè)Example for podKit 文件夾乏冀,展開蝶糯,便是我們熟悉的正常xcode項(xiàng)目目錄了,在那做個(gè)#import導(dǎo)入試試就行辆沦,不報(bào)錯(cuò)昼捍,編譯能通過,就成功了

  1. 驗(yàn)證spec文件

cd到項(xiàng)目根目錄下執(zhí)行: pod lib lint --allow-warnings


1-6.png
  • 執(zhí)行了3遍肢扯,第三次成功了妒茬,截圖我有說明,有兩次是反面教材蔚晨,哈哈

這一步乍钻,切記:命令行的執(zhí)行目錄是不同的:
pod lib lint --allow-warnings是在項(xiàng)目根目錄下
pod update --no-repo-update 是在Example目錄下

  1. 項(xiàng)目發(fā)布,git提交操作
    依次執(zhí)行以下命令铭腕,一定要按照順序執(zhí)行:
  • git git remote add origin https://github.com/shLuckySeven/podKit.git
  • git status
  • git add .
  • git status
  • git commit -m "提交信息"
  • git pull origin master --allow-unrelated-histories
  • 這一步银择,注意:上面執(zhí)行完pull origin master后,由于你的倉庫是新建的谨履,建的時(shí)候我們可能創(chuàng)建了README和ignore文件欢摄,所以pull的時(shí)候,和本地的文件會(huì)有沖突笋粟,所以怀挠,這個(gè)時(shí)候我們繼續(xù)執(zhí)行:
  • git status 查看沖突
  • git add .
  • git commit -m "解決沖突
  • git push origin master
    到這,應(yīng)該就成功了害捕,如果還是報(bào)錯(cuò)绿淋,那你就自行百度吧,或者對(duì)著我的步驟再仔細(xì)核對(duì)一遍

8-1. 打tag

  • git tag 0.0.1
  • git push origin 0.0.1

到這尝盼,我們的私有庫代碼部分就結(jié)束了吞滞,登錄你的github查看遠(yuǎn)程倉庫,應(yīng)該就有你的代碼了,下面裁赠,我們開始整 spec文件管理倉庫

第三步:Specs 文件倉庫管理

specs 的作用:

Specs殿漠,叫做私有庫文件管理倉庫,也就是說我們后續(xù)對(duì)私有庫升級(jí)佩捞、版本的操作绞幌,全靠這個(gè)東西,它的制作流程和之前制作代碼倉庫的流程一樣一忱,假如我們創(chuàng)建的Specs叫 "SHspec"

  1. 添加Specs到本地

執(zhí)行命令行:pod repo add SHSpec https://github.com/shLuckySeven/SHSpec.git
這里給大家說個(gè)小竅門:快捷鍵Command+Shift+.查看隱藏文件

1-7.png

如圖:我們的~/.cocoapods/repos/SHSpec出現(xiàn)了莲蜘,它里面就替我們管理了我們的私有pod的spec版本文件

  1. 將私有庫的.podspec文件添加到本地的Specs中,并同步到遠(yuǎn)端倉庫

cd到我們的私有庫項(xiàng)目根目錄下帘营,一定要cd到這
執(zhí)行: pod repo push SHSpec podKit.podspec

1-8.png

再去剛才說的~/.cocoapods/repos/SHSpec目錄下面票渠,看看:


1-9.png

podKit出現(xiàn)了,而且芬迄,版本號(hào)是0.0.1问顷,登錄github遠(yuǎn)端查看

1-10.png

到這,其實(shí)可以說已經(jīng)非常nice了薯鼠,但是我們還要用我們的私有pod庫择诈,命令行:

pod search podKit

此處,應(yīng)該有掌聲出皇,我覺得羞芍!

第四步:關(guān)于后續(xù)私有庫升級(jí)

1.修改代碼,需改podspec文件里面的版本號(hào)
2.pod update --no-repo-update
3.代碼編譯驗(yàn)證通過之后郊艘,將代碼push到遠(yuǎn)端
4.打新的tag
git tag -a '0.0.1' -m '描述' //添加tag
git tag //查看tag
5.podspec文件驗(yàn)證:pod lib lint --allow-warnings
6.將podspec文件push到Specs倉庫中:
pod repo push SHSpec podKit.podspec

又到了深夜說再見的時(shí)候荷科,觀眾朋友們,下次再見纱注!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末畏浆,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖塌鸯,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蝎毡,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)氧枣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門沐兵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人便监,你說我怎么就攤上這事扎谎。” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵毁靶,是天一觀的道長胧奔。 經(jīng)常有香客問我,道長老充,這世上最難降的妖魔是什么葡盗? 我笑而不...
    開封第一講書人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任螟左,我火速辦了婚禮啡浊,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘胶背。我一直安慰自己巷嚣,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開白布钳吟。 她就那樣靜靜地躺著廷粒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪红且。 梳的紋絲不亂的頭發(fā)上坝茎,一...
    開封第一講書人閱讀 51,631評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音暇番,去河邊找鬼嗤放。 笑死,一個(gè)胖子當(dāng)著我的面吹牛壁酬,可吹牛的內(nèi)容都是我干的次酌。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼舆乔,長吁一口氣:“原來是場噩夢啊……” “哼岳服!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起希俩,我...
    開封第一講書人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤吊宋,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后颜武,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體璃搜,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年盒刚,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了腺劣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡因块,死狀恐怖橘原,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤趾断,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布拒名,位于F島的核電站,受9級(jí)特大地震影響芋酌,放射性物質(zhì)發(fā)生泄漏增显。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一脐帝、第九天 我趴在偏房一處隱蔽的房頂上張望同云。 院中可真熱鬧,春花似錦堵腹、人聲如沸炸站。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽旱易。三九已至,卻和暖如春腿堤,著一層夾襖步出監(jiān)牢的瞬間阀坏,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來泰國打工笆檀, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留忌堂,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓误债,卻偏偏與公主長得像浸船,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子寝蹈,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

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

  • 這幾天業(yè)余圍棋界一樁作弊案鬧得沸沸揚(yáng)揚(yáng)李命。起因是一名不知名棋手在比賽中戰(zhàn)勝了業(yè)余天王胡煜清。事后發(fā)現(xiàn)比賽中該棋手將手...
    512song閱讀 187評(píng)論 0 0
  • 我是在2018年的8月末尾進(jìn)入東南大學(xué)學(xué)習(xí)的箫老,我印象里應(yīng)該是8月25或者26的樣子封字,但總是記得不大清楚了。然而我卻...
    無比幸福的陸遜閱讀 284評(píng)論 0 2
  • 〇耍鬓、前言 18年底阔籽,自己寫了一篇成就事件,發(fā)現(xiàn)年底才開始回顧這一年會(huì)遺忘好多事情牲蜀,今年希望可以從年初就開始一點(diǎn)一滴...
    檸檬佳呀閱讀 1,305評(píng)論 3 11