組件化開發(fā)之01 cocoapods 本地私有庫(kù)

閱讀本文之前假定讀者已經(jīng)具有了能夠使用 cocoapods 管理包依賴和能夠通過(guò)編寫 podspec 文件并上傳過(guò)自己的 cocoapods 共公庫(kù)到 GitHub.并能夠通過(guò) pod search 和 pod install 安裝自己的 cocoapods 庫(kù).

私有庫(kù)分為遠(yuǎn)程私有庫(kù)和本地私有庫(kù),本地私有庫(kù)顧名思義就是在自己電腦上搞個(gè)文件夾放自己庫(kù)的代碼,并通過(guò)pod install從本地引入你的庫(kù)文件到工程中來(lái).

1 如果創(chuàng)建一個(gè)本地私有庫(kù)
在終點(diǎn)上通過(guò)pod lib create YVBase(你的庫(kù)名稱) 這個(gè)命令會(huì)從 cocoapods 在 github 上創(chuàng)建的模板工程 clone 到你本地 ,然后你根據(jù)提示創(chuàng)建一個(gè)模板工程,然后根據(jù)提示進(jìn)行操作

01 What platform do you want to use?? [ iOS / macOS ]
//是創(chuàng)建一個(gè) iOS 還是 macOS 的工程
02 What language do you want to use?? [ Swift / ObjC ]
//使用 ObjC 還是 Swift 開放語(yǔ)言
03 Would you like to include a demo application with your library? [ Yes / No ]
//是否導(dǎo)入一個(gè)實(shí)例程序就是俗稱的 demo ,其實(shí)就是在這個(gè) demo 上去安裝你自己的私有庫(kù) 然后測(cè)試你的私有庫(kù)
04 Which testing frameworks will you use? [ Specta / Kiwi / None ]
//是否選擇一個(gè)測(cè)試的框架 ,筆者一般選 None 我一般是將已經(jīng)寫好的功能抽取成組件,所以只需要管理組件 能夠?qū)⒋a抽離出來(lái)就行

05 Would you like to do view based testing? [ Yes / No ] 類似于 Xcode 自帶的 UI Tests框架 筆者很少用,需要的可以輸入 YES

06 What is your class prefix? 類前綴 我一般以 YV 開頭,筆者待過(guò)好幾家公司 BM BK SK CY 一般都是以公司項(xiàng)目名稱為前綴 YV 代表一喂智能科技有限公司

QQ20180327-112002@2x.png

最終會(huì)生成一個(gè)Xcode 工程 并且可以打開并運(yùn)行

2 這個(gè)私有庫(kù)由那幾部分組成

QQ20180327-112241@2x.png

我們一般將自己寫的庫(kù)文件放到 YVBase 這個(gè)文件夾里 ,并在 YVBase.podspec里指定 s.source_files 和 s.resources ,這樣執(zhí)行pod install時(shí)就會(huì)檢查podspec里的描述信息,然后將 YVBase 里的代碼和資源文件 引入到工程中

image.png

對(duì)于如何編寫podspec 文件描述 不是本文所講內(nèi)容,具體可以cocoapods 官方文檔 (https://guides.cocoapods.org/making/specs-and-specs-repo.html)

3 往本地私有庫(kù)添加一些自己寫的代碼 并在測(cè)試工程中調(diào)試

01 將 SKToast 這個(gè)類放到 YVBase/Classes 文件夾下邊 ,然后打開 demo 工程 并執(zhí)行pod install命令 將添加的文件引入到 demo 工程中


image.png

02 打開測(cè)試工程 查看 Pods 下邊文件 找到自己添加的 SKToast 這個(gè)類文件


image.png

03 如果文件路徑在 podspec 中編寫的沒(méi)有錯(cuò),是可以通過(guò)pod install引入到工程中的,這個(gè)時(shí)候可以再 YVBase-Example 測(cè)試工程里,去使用你本地私有庫(kù) YVBase 里的 SKToast 這個(gè)類
image.png

編寫完測(cè)試代碼后可以編譯下代碼并運(yùn)行到模擬器中

image.png

4 注意細(xì)節(jié) 我們的demo 工程和 YVBase 是在同一個(gè)目錄下邊的,所以在工程里 podfile 文件已經(jīng)設(shè)置好了 pod 'YVBase'的路徑為 path ==> '../' , 當(dāng)另一個(gè)工程需要引入YVBase 這個(gè)庫(kù)時(shí)需要注意路徑問(wèn)題,本地私有庫(kù)需要指定文件再電腦上的絕對(duì)路徑, 不知道文件具體路徑的可以 將 YVBase 代碼倉(cāng)庫(kù)拖拽到終端上 可以查看

image.png

這樣我在另一個(gè)工程里的 podfile 中 可以指定 pod 'YVBase' :path => '/Users/dzb/YVBase' ,然后執(zhí)行 pod install 就可以將我放在 /Users/dzb/YVBase這個(gè)私有庫(kù)代碼引入到需要的工程中去.

以下是具體的使用參考

這是我放在本地的組件庫(kù) , 方便本地開發(fā)使用,也可以上傳到 git 私有倉(cāng)庫(kù)作為遠(yuǎn)程私有庫(kù)供其他開發(fā)人員使用(私有倉(cāng)庫(kù)需要其他開發(fā)人員具有查看 修改 提交的權(quán)限 可以使 https 和 ssh 等形式訪問(wèn))


image.png

順風(fēng)車官網(wǎng)完全采用組件化開發(fā) 主工程只有一個(gè) Appdelegate 寫了一初始化的代碼

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末菊碟,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子在刺,更是在濱河造成了極大的恐慌逆害,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蚣驼,死亡現(xiàn)場(chǎng)離奇詭異魄幕,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)颖杏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門纯陨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事队丝∶夷伲” “怎么了?”我有些...
    開封第一講書人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵机久,是天一觀的道長(zhǎng)臭墨。 經(jīng)常有香客問(wèn)我,道長(zhǎng)膘盖,這世上最難降的妖魔是什么胧弛? 我笑而不...
    開封第一講書人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮侠畔,結(jié)果婚禮上结缚,老公的妹妹穿的比我還像新娘。我一直安慰自己软棺,他們只是感情好红竭,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著喘落,像睡著了一般茵宪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上瘦棋,一...
    開封第一講書人閱讀 51,763評(píng)論 1 307
  • 那天稀火,我揣著相機(jī)與錄音,去河邊找鬼赌朋。 笑死凰狞,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的沛慢。 我是一名探鬼主播赡若,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼团甲!你這毒婦竟也來(lái)了逾冬?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤伐庭,失蹤者是張志新(化名)和其女友劉穎粉渠,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體圾另,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡霸株,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了集乔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片去件。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡坡椒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出尤溜,到底是詐尸還是另有隱情倔叼,我是刑警寧澤,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布宫莱,位于F島的核電站丈攒,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏授霸。R本人自食惡果不足惜巡验,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望碘耳。 院中可真熱鬧显设,春花似錦、人聲如沸辛辨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)斗搞。三九已至指攒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間榜旦,已是汗流浹背幽七。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工景殷, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留溅呢,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓猿挚,卻偏偏與公主長(zhǎng)得像咐旧,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子绩蜻,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

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