iOS組件化開發(fā)之路(CTMediator)绵咱,涉及到cocoapods本地庫亿絮、遠程私有庫、遠程公開庫(二)

iOS組件化開發(fā)之路(CTMediator)麸拄,涉及到cocoapods本地庫、遠程私有庫黔姜、遠程公開庫(一)

二拢切、遠程私有倉庫 + 組件化

其實頁面的跳轉(zhuǎn)方法和本地庫的跳轉(zhuǎn)方法是一樣的,麻煩就麻煩在配置遠程私有倉庫這里秆吵,今天我細致板牙的給喃們講講遠程私有倉庫的創(chuàng)建淮椰。
今天我們這個教程就以淘寶和天貓為例。

1. 首先我們還是新建一個大文件夾,命名為AlibabaProject主穗,一會項目都放進這里看著立整
image.png
2. 新建工程泻拦,命名為Taobao
image.png
3. 設(shè)置一下證書和版本號還有一些基本代碼,讓項目可以跑起來
image.png

image.png

運行起來應(yīng)該是這樣嬸兒的


image.png

主工程到此為止先告一段落争拐,下面我們要開始遠程私有庫的創(chuàng)建了晦雨,每一步都是關(guān)鍵


劃重點

4. 首先需要索引的文件創(chuàng)建一個遠程的私有庫,好多博客有的用代碼創(chuàng)建闹瞧、有的創(chuàng)建時機在后面绑雄,總之就是亂七八糟的看的一頭霧水奥邮,這里我就簡單粗暴,能點的就不用代碼

在碼云創(chuàng)建倉庫


image.png

解釋一下這個倉庫是用來做什么的:這個倉庫不是用來存儲我們每次開發(fā)的代碼的洽腺,當(dāng)我們想把自己封裝好的類給外界分享時就好比pod "AFNetworking"會將AFN的包引進來而不是引進來整個項目脚粟,那么你抽出去的那部分代碼需要打一個tag版本且有唯一的tag版本號已脓,索引庫會關(guān)聯(lián)上這個打上了tag版本號的包,在你搜索pod search或安裝的時候才會下載指定路徑下的包文件厕宗。

5. 打開Finder已慢,進入.cocoapods文件夾
image.png

看到這個master文件夾沒霹购,這個就是Cocoapods公共的索引庫,你搜索的那些三方庫的索引都在這里面呢膜楷,如果你做的是公共的三方依賴庫那么你的索引就會加到這個文件夾中赌厅,但是我們現(xiàn)在要做的是私有的依賴庫轿塔,所以我們要為自己的依賴庫創(chuàng)建一個索引文件夾
打開終端

$ pod repo add TmallOpenSpec https://gitee.com/moment_forever/TmallOpenSpec.git

在你的目錄中會多出這樣一個文件夾


image.png

使用pod repo命令可以查看你本地存在的索引庫


image.png
6. 開始準(zhǔn)備天貓工程

先為天貓工程開一個私有倉庫


image.png

新建天貓工程揍障,并與倉庫關(guān)聯(lián)上,配置好證書什么的讓項目可以跑起來癌蚁,記得修改工程支持的系統(tǒng)版本10.0审胚,此時文件應(yīng)該是這樣的


image.png

簡單配置一下工程膳叨,配置出我們的天貓商品詳情頁還有Targets,是不是忘記Targets是什么了菲嘴?這個是我們路由跳轉(zhuǎn)需要用到的關(guān)聯(lián)文件,照著我的圖配好你們的工程
AppDelegate.m
image.png

Targets/Target_TmallDetail.h


image.png

Targets/Target_TmallDetail.m
image.png

TmallDetailViewController/TmallDetailViewController.m
image.png
7. 工程已經(jīng)準(zhǔn)備好健田,下面為工程創(chuàng)建索引依賴文件

進入工程的目錄,就在倉庫的那層跟目錄就行

$ pod spec create Tmall

創(chuàng)建出來就這樣的


image.png
8. 配置Tmall.podspec文件总放,這個地方要注意我紅框圈起來的位置
image.png
9. 配置好文件后局雄,將所有文件提交到遠程倉庫上面
10. 為你的工程打上tag(此處的tag版本號是要和你podspec文件里面的spec.version字段相對應(yīng)的)
$ git tag 0.0.1

將tag推到遠端

$ git push --tags
image.png
11. 驗證spec文件的有效性(本地和遠程)

本地

$ pod lib lint Tmall.podspec --allow-warnings

遠程

$ pod spec lint Tmall.podspec --allow-warnings

驗證通過的示例


image.png

如果沒通過驗證怎么辦炬搭,不要慌

如果驗證出錯需要修改spec文件(如何修改spec文件呢宫盔,看提示你的ERROR里面的內(nèi)容享完,不要看WARN驼侠,在各種地方查詢錯誤,嘗試修改苛预,在這個過程總你會開始更深入的理解這個文件的用法笋熬,這才是讓你成長的地方)
重新提交文件,并重新打tag
刪除之前的tag命令
git tag -d 0.0.1
git push origin :refs/tags/0.0.1

12. 驗證都通過了之后將項目spec文件與本地索引庫文件關(guān)聯(lián)
$ pod repo push TmallOpenSpec Tmall.podspec --allow-warnings
image.png

檢驗一下

$ pod search Tmall
13. 在主工程Taobao中新建Podfile文件并pod 'Tmall'
source 'https://gitee.com/moment_forever/TmallOpenSpec.git'

platform :ios, '10.0'

target 'Taobao' do

    pod 'Tmall', '0.0.1'
    
end

上面的source就是用我們自己創(chuàng)建的索引庫去查找依賴框架的
這個source是哪里來的呢昔馋,就是我們pod repo時如下圖中紅框中的內(nèi)容


image.png
14. 執(zhí)行pod install打開Taobao工程秘遏,查看引入的私有組件庫
image.png

組件工程準(zhǔn)備好了之后嘉竟,我們使用同樣的方法創(chuàng)建組件工程的分類工程

15. 新建Tmall_Cagetory的私有倉庫
image.png
16. 關(guān)聯(lián)到本地舍扰,新建工程边苹,關(guān)聯(lián)進倉庫,配置工程版本號慕购、證書
image.png

image.png
17. 為Tmall_Category工程添加CTMediator三方依賴庫
platform :ios, '10.0'

target 'Tmall_Category' do
    pod 'CTMediator'
end

安裝好之后應(yīng)該是這樣的


image.png
18. 新建分類的文件夾及文件
image.png

image.png

還記得怎么映射的嗎


image.png
19. 配置Tmall_Category的podspec文件

新建

$ pod spec create Tmall_Category

配置

Pod::Spec.new do |spec|
  spec.name         = "Tmall_Category"
  spec.version      = "0.0.1"
  spec.summary      = "A short description of Tmall_Category."
  spec.homepage     = "https://gitee.com/moment_forever/Tmall_Category"
  spec.author             = { "Cloud" => "haohao10987@163.com" }
  spec.platform     = :ios, "10.0"
  spec.source       = { :git => "https://gitee.com/moment_forever/Tmall_Category.git", :tag => "#{spec.version}" }
  spec.subspec 'Tmall_Category' do |sub|
    sub.source_files = "Tmall_Category/Tmall_Category/Tmall_Category/*.{h,m}"
  end
  spec.dependency "CTMediator"
end
20. 全部提交到倉庫桩警,打上tag
$ git tag 0.0.1
$ git push --tags
21. 本地和遠程的驗證

本次的驗證由于CTMediator用了一些系統(tǒng)底層的庫,所以在驗證時要加--use-libraries參數(shù)

$ pod lib lint Tmall_Category.podspec --allow-warnings --use-libraries
$ pod spec lint Tmall_Category.podspec --allow-warnings --use-libraries
image.png
22. 為Tmall_Category.podspec文件與索引文件關(guān)聯(lián)握截,但是目前我們還沒有為Tmall_Category創(chuàng)建索引關(guān)聯(lián)文件谨胞,接下來創(chuàng)建
23. 創(chuàng)建Tmall_CategoryOpenSpec的遠程私有倉庫
image.png
23. 將托管平臺的索引庫地址添加到本地的repo倉庫中去
$ pod repo add Tmall_CategoryOpenSpec https://gitee.com/moment_forever/Tmall_CategoryOpenSpec.git

在我們本地的.cocoapods文件夾中會多出Tmall_Category的索引文件夾


image.png
24. 將項目spec文件與本地索引庫文件關(guān)聯(lián)
$ pod repo push Tmall_CategoryOpenSpec Tmall_Category.podspec --allow-warnings --use-libraries 

搜索一下檢查

$  pod search Tmall_Category
25. 在我們的主工程Taobao的Podfile文件里面添加內(nèi)容
image.png
26. 安裝
$ pod install
image.png

安裝好后應(yīng)該是這樣的


image.png
27. 配置ViewController
image.png
28. 最后運行模擬器看一下效果吧
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市蒲讯,隨后出現(xiàn)的幾起案子灰署,更是在濱河造成了極大的恐慌,老刑警劉巖晦墙,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件晌畅,死亡現(xiàn)場離奇詭異独郎,居然都是意外死亡,警方通過查閱死者的電腦和手機谓谦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門贪婉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來疲迂,“玉大人,你說我怎么就攤上這事尤蒿⊙兀” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵讳侨,是天一觀的道長奏属。 經(jīng)常有香客問我,道長勇婴,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任德谅,我火速辦了婚禮,結(jié)果婚禮上愧驱,老公的妹妹穿的比我還像新娘组砚。我一直安慰自己,他們只是感情好糟红,可當(dāng)我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布盆偿。 她就那樣靜靜地躺著,像睡著了一般捎稚。 火紅的嫁衣襯著肌膚如雪求橄。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天,我揣著相機與錄音涵亏,去河邊找鬼。 笑死夹厌,一個胖子當(dāng)著我的面吹牛裆悄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播或南,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼采够,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了权她?” 一聲冷哼從身側(cè)響起逝薪,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤董济,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后虏肾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體封豪,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了藻雌。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片胯杭。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖鸽心,靈堂內(nèi)的尸體忽然破棺而出居暖,到底是詐尸還是另有隱情,我是刑警寧澤糯景,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站最住,受9級特大地震影響怠惶,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜脓魏,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一轧拄、第九天 我趴在偏房一處隱蔽的房頂上張望讽膏。 院中可真熱鬧拄丰,春花似錦、人聲如沸奄侠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至牡整,卻和暖如春溺拱,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工媚狰, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人卓起。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像昼弟,于是被迫代替她去往敵國和親奕筐。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,037評論 2 355