iOS 組件化第一步 CocoaPods 制作私有庫PodSpec

最近項(xiàng)目經(jīng)管理需要做到組件化悦析,而組件化自己動(dòng)手的第一步需要用到 CocoaPods制作私有PodSpec检访,網(wǎng)上查了很多相關(guān)文章,跟著文中去實(shí)施起來千埃,發(fā)現(xiàn)作者自己理解了,寫出來中間多多少少都會(huì)少幾步忆植,實(shí)踐起來需要結(jié)合上下文花費(fèi)大量時(shí)間去理解放可。寫這篇目的是以一個(gè)新手角度,跟著文中一步一步來從0開始讓你只需要2小時(shí)學(xué)會(huì) CocoaPods 制作私有倉庫朝刊,熟練起來還需要多練幾次就能達(dá)到像我一樣耀里,現(xiàn)在只需要5分鐘打完tag 后推到自己私有庫。

1拾氓、github 創(chuàng)建倉庫(pod倉庫 https://github.com/cicic1c1/podspec.git)冯挎,這個(gè)倉庫作用管理pod的版本(倉庫要初始化,不能為空里面有個(gè)文件README.md咙鞍,或者自己弄個(gè)文件上去(不能是空文件夾)房官,否則步驟14會(huì)失敗push不上去,需要去自行研究 Git知識(shí) baidu续滋、Google)

1.png

2翰守、添加私有庫,把步驟1中創(chuàng)建的pod倉庫疲酌,添加到本地 ~/.cocoapods/repos中蜡峰,只需要執(zhí)行命令 pod repo add mypodspec https://github.com/cicic1c1/podspec.git,去查看所有pod倉庫執(zhí)行pod repo查看添加成功沒有

2.png

3徐勃、github 創(chuàng)建倉庫(代碼倉庫https://github.com/cicic1c1/code.git)事示,這個(gè)倉庫作用管理代碼 (這個(gè)倉庫為空倉庫,里面什么都沒有僻肖,README.md也沒有肖爵,初始化也沒有,不然步驟12會(huì)push失敗臀脏,需要去自行研究 Git知識(shí) baidu劝堪、Google) 冀自,此時(shí)我們有了2個(gè)倉庫

3.png

4、去你想去的目錄初始化一個(gè)pod工程秒啦,執(zhí)行pod lib create Demo熬粗,我是在~/Desktop目錄下初始化pod工程,我自己全部選No(為什么選No步驟5有詳細(xì)說明余境,我不需要pod幫我創(chuàng)建一個(gè)測(cè)試工程)驻呐。 這一步根據(jù)自己的需求選擇,(這是pod知識(shí)芳来,自行baidu含末、Google pod lib create)

4.png

4.1.png

5、步驟4成功后打開Demo文件夾即舌,在根目錄刪除 _Pods.xcodeproj佣盒、Example,有(Assets/Classes)文件夾改名 Sources(這樣做的目的是不需要pod lib create Demo這一步時(shí)候顽聂,在這個(gè)問題 Would you like to include a demo application with your library? [ Yes / No ] > Yes 肥惭,Yes就會(huì)幫我們創(chuàng)建一個(gè)測(cè)試工程。如果創(chuàng)建了測(cè)試工程紊搪,你需要將你寫好的工具類丟到Classes目錄下蜜葱,cd到Example文件夾下(Yes才有這個(gè)文件夾),再執(zhí)行pod install你的這個(gè)測(cè)試工程就有了你工具類嗦明,這樣操作太麻煩)所以我自己新建一個(gè)同名工程笼沥,每次Classes創(chuàng)建類蚪燕,就沒有這一步操作詳細(xì)請(qǐng)看步驟6

5.png

6娶牌、打開 Xcode 新建一個(gè)同名工程(我的名字是Demo),將新建工程里面文件全部丟進(jìn)你刪除那個(gè)文件夾下面(也是就是步驟5那個(gè)文件夾)馆纳,完成后如圖6.2.png诗良。

6.png
6.1.png
6.2.png

7、pod lib create Demo出來Demo根目錄執(zhí)行pod init,pod install(一定要先init鲁驶,再install鉴裹,這樣就能把自己建的那個(gè)工程與pod lib create Demo 那個(gè)工程關(guān)聯(lián)起來)。

7.png
7.1.png

8钥弯、pod lib create Demo 出來的工程径荔,關(guān)聯(lián)到github 創(chuàng)建代碼倉庫(代碼倉庫https://github.com/cicic1c1/code.git)執(zhí)行命令git remote add origin https://github.com/cicic1c1/code.git, 查看關(guān)聯(lián)上沒有git remote -v

8.png

9脆霎、打開 Demo.xcworkspaceSources总处,Demo.podspec丟進(jìn)工程。Classes 目錄下就可以寫工具類代碼了睛蛛,我寫了一個(gè)打印測(cè)試Test.swift

9.png

10鹦马、修改Demo.xcworkspace 里面pod配置信息胧谈,這個(gè)可以baidu、Google荸频,根據(jù)項(xiàng)目需要來配置菱肖。
s.homepage = '步驟3中地址(代碼倉庫地址)'
s.source = '步驟3中地址(代碼倉庫地址)'
s.ios.deployment_target = '10.0' (工程targets 對(duì)應(yīng)修改10.0) 我自己項(xiàng)目支持10.0
s.swift_version = '5.0' 我自己項(xiàng)目支持5.0
s.source_files = 'Sources/Classes/**/*' 步驟5中改Sources對(duì)應(yīng)
s.resource_bundles = ...['Sources/Assets/*.png']

10.png

11、驗(yàn)證 Demo.xcworkspace 文件編寫是否正確旭从,執(zhí)行pod lib lint稳强,"--allow-warnings"為忽略警告作用(Sources 里面要有文件不能為空否則無法驗(yàn)證通過, 'source_files' 會(huì)報(bào)錯(cuò))和悦,我的項(xiàng)目有警告所以用這句pod lib lint --allow-warnings键袱,看到Demo passed validation.為驗(yàn)證通過

11.png

12、上傳代碼到步驟3代碼倉庫摹闽,倉庫中有了代碼
git add .
git commit -m "test 打印輸出類"
git pull
git push origin master

12.png

13蹄咖、打tag,推送tag 到代碼倉庫
git tag -a 0.1.0 -m "V0.1.0"
git push origin 0.1.0

13.png

14付鹿、push 代碼倉庫的Demo.podspec到pod倉庫中去澜汤,執(zhí)行命令pod repo push mypodspec Demo.podspec --allow-warnings --verbose(push 步驟3倉庫中的 *.podspec -> 步驟1倉庫中去) 無報(bào)錯(cuò)成功。(.cocoapods/repo可以查看 tag 成功沒有)舵匾,命令意思pod repo push (.cocoapods/repo/倉庫名俊抵,步驟2中起的名字) Demo.podspec(pod 配置文件) --allow-warnings --verbose(去掉警告)

14.png

15、新建一個(gè)工程Podfile 引入私有庫坐梯,至此測(cè)試成功

15.png
15.1.png

在實(shí)施步驟14徽诲、pod repo push [xxx] [xxx]增加私有 pod 時(shí)出現(xiàn)過2次問題:The repo `xxxxx` at `../../../../../.cocoapods/repos/xxxx is not clean
解決辦法:1、先移除 pod repo remove [xxx]2吵血、再次添加pod repo add [xxx] [倉庫地址]

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末谎替,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蹋辅,更是在濱河造成了極大的恐慌钱贯,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件侦另,死亡現(xiàn)場(chǎng)離奇詭異秩命,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)褒傅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門弃锐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人殿托,你說我怎么就攤上這事霹菊。” “怎么了碌尔?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵浇辜,是天一觀的道長冈在。 經(jīng)常有香客問我绢记,道長扳肛,這世上最難降的妖魔是什么孙援? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮熊镣,結(jié)果婚禮上卑雁,老公的妹妹穿的比我還像新娘。我一直安慰自己绪囱,他們只是感情好测蹲,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著鬼吵,像睡著了一般扣甲。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上齿椅,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天琉挖,我揣著相機(jī)與錄音,去河邊找鬼涣脚。 笑死示辈,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的遣蚀。 我是一名探鬼主播矾麻,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼芭梯!你這毒婦竟也來了险耀?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤粥帚,失蹤者是張志新(化名)和其女友劉穎胰耗,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體芒涡,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年卖漫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了费尽。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡羊始,死狀恐怖旱幼,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情突委,我是刑警寧澤柏卤,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布冬三,位于F島的核電站,受9級(jí)特大地震影響缘缚,放射性物質(zhì)發(fā)生泄漏勾笆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一桥滨、第九天 我趴在偏房一處隱蔽的房頂上張望窝爪。 院中可真熱鬧,春花似錦齐媒、人聲如沸蒲每。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽邀杏。三九已至,卻和暖如春唬血,著一層夾襖步出監(jiān)牢的瞬間淮阐,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來泰國打工刁品, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留泣特,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓挑随,卻偏偏與公主長得像状您,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子兜挨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

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