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

開(kāi)篇:

入戲:

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

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

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

目錄

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

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

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

  • cd desktop
  • pod lib create podKit

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

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

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

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

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

# 類(lèi)前綴名
What is your class prefix?
 > SH
1-1.png

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

第二步:私有庫(kù)本地的配置和集成

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


    1-3.png
  2. 接下來(lái),打開(kāi)項(xiàng)目,打開(kāi)那個(gè)Example文件下下面的xxx.xcworkspace,這個(gè)不用我多說(shuō)了吧,這個(gè)時(shí)候你展開(kāi)的項(xiàng)目,展開(kāi)Pods -- 啥也沒(méi)有,哈哈哈,別急,往下繼續(xù)看:

  3. 編輯podspec文件
    編輯這個(gè)文件之前,需要去github賬號(hào)上,新建一個(gè)遠(yuǎn)程倉(cāng)庫(kù),把地址拷過(guò)來(lái)洗干凈備用,新建遠(yuǎn)程倉(cāng)庫(kù),我在這不做說(shuō)明了

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

1-5.png

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

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

注意:你要不聽(tīng)我的話,不cd到我說(shuō)的目錄,那你就等著看紅吧(因?yàn)樵谀莻€(gè)目錄下才有PodFile文件呀),還有別問(wèn)為啥update后面為啥跟那些小可愛(ài),因?yàn)槟氵@個(gè)時(shí)候還沒(méi)有遠(yuǎn)程倉(cāng)庫(kù)

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

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

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

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


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

這一步,切記:命令行的執(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后,由于你的倉(cāng)庫(kù)是新建的,建的時(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

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

第三步:Specs 文件倉(cāng)庫(kù)管理

specs 的作用:

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

  1. 添加Specs到本地

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

1-7.png

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

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

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

1-8.png

再去剛才說(shuō)的~/.cocoapods/repos/SHSpec目錄下面,看看:


1-9.png

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

1-10.png

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

pod search podKit

此處,應(yīng)該有掌聲,我覺(jué)得!

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

1.修改代碼,需改podspec文件里面的版本號(hào)
2.pod update --no-repo-update
3.代碼編譯驗(yàn)證通過(guò)之后,將代碼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倉(cāng)庫(kù)中:
pod repo push SHSpec podKit.podspec

又到了深夜說(shuō)再見(jiàn)的時(shí)候,觀眾朋友們,下次再見(jiàn)!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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

友情鏈接更多精彩內(nèi)容