
前言
iOS元件化的實作基本基于cocoapods,如何使用cocoapods建立自己的元件庫,是實作元件化的第一要素,下面就建立自己的私有Cocopods庫展開實戰記錄。
本文中引用了很多原文的gif動态圖,是因為原作者總結的很好了,但是有些地方我做了補充以及解決了一個很大的使用中的問題,原文連結在本文的文章末尾。
一、建立私有庫的索引庫
建立索引庫檔案.gif
建立私有庫的索引庫,這句話有些繞口,我們分開來看:
1、索引庫:存放spec檔案的地方,用于索引到代碼的位置。
2、私有庫:指的是我們真正放置元件代碼的地方。
打個比方,索引庫就好比指針,私有庫就好比對象,指針中存放了對象的位址,通過位址可以找到對象!
我們在建立的這個空的倉庫,是用來存放我們自己所有的私有庫的 spec 檔案,
就如同官方的 https://github.com/CocoaPods/Specs 是用來存放所有官方的 specs 檔案一樣。
複制
二、将建立的索引庫添加到本地cocoapods倉庫
添加遠端索引庫到本地cocoapods.gif
-
1.cocoapods本地倉庫路徑
$ ~/.cocoapods/repos
-
2.在本地添加一個自己的遠端索引庫
$ pod repo add QinzRepo https://gitee.com/Qinz_323/QinzRepo.git 這個時候需要輸入碼雲賬号、密碼
上面就是簡單的将我們自己建立的索引庫放置在cocoapods管理的倉庫下,預設情況下是隻有一個master倉庫,我們常用的SDWebImage,AFNetWoking等的本地索引就在這個倉庫中。現在是通過碼雲來建立自己的倉庫,是以要建立一個自己的索引倉庫,該倉庫下也隻是存放各元件的索引檔案,不存放代碼!
三、建立模闆
建立模闆.gif
-
建立模闆的指令
$ pod lib create QinzTool 這時會需要回答幾個問題,如下圖這樣回答即可:
通過該指令會自動建立一個模闆工程,裡面包含我們需要的索引檔案,格式為spec,建立完成後,系統會自動打開我們的這個工程。
接下來通過該模闆檔案來制作我們自己的元件。
四、将我們自己的元件放入指定目錄
将元件放入指定檔案.gif
模闆檔案中會看到一個Development pods的檔案夾,這個檔案夾代表的是本地的元件庫,這裡我們把Tool檔案(也就是我們自己制作的元件)放在指定的檔案夾,然後引入到工程中。
(我建立的時候,并沒有看到Development 這層檔案夾,可以直接把檔案拖到 pods/JWJFramework中即可。)
至此,我們的本地第三方元件已經制作完成,現在就可以通過在終端執行pod install 後看看效果了!當然,我們肯定不會局限于本地,接下來就是如何制作線上元件庫了!
五、将制作好的元件上傳至碼雲
上傳元件至碼雲.gif
這裡你會發現,我又重新建立了一個項目,和我之前建立的索引庫項目是不一樣的,這個就是真正放置我們封裝的代碼的地方。這裡我們選擇導入已有工程,點選建立後會生成一些指令提示,我們找到最下面的三條指令,将本地的模闆上傳至該倉庫!見下圖:
上傳至碼雲.gif
-
1.執行下面三條指令,上傳模闆檔案
$ cd /Users/Qinz/Desktop/QinzTool/QinzTool $ git remote add origin https://gitee.com/Qinz_323/Tool.git $ git push -u origin master
-
2.将元件的代碼上傳,上一步隻上傳了模闆檔案
$ git add . $ git commit -m ``'初始化'` $ git push -u origin master`
-m '初始化'是送出的備注資訊,可以自己根據需要填寫,同時可以去網站上時時檢視倉庫的變化!見下圖:
上傳代碼.gif
六、更改模闆檔案相關資訊
填寫模闆檔案.gif
我們打開Xcode工程,找到.podspec字尾的檔案,
更改s.summary,這個是顯示在pod search的簡短描述:“進無盡的第一個私有庫”;
s.version是版本号,第一次預設是0.1.0不用修改,
下面再主要修改兩個參數
s.homepage 為我們的賬号首頁位址:https://gitee.com/fangmei
s.source中的位址為我們建立元件倉庫的位址:https://gitee.com/fangmei/Tool.git
即可!
七、驗證spec檔案
驗證spec檔案.gif
$ pod lib lint --private
複制
這裡是對我們的spec檔案進行驗證,就是是否符合要求!如果這裡報錯,說明你配置spec檔案是有問題的!
八、給版本打一個分支
建立版本分支.gif
此處的 0.1.0 版本号要與 spec 檔案的保持一緻
$ git tag 0.1.0
$ git push --tags
複制
打分支這一步很重要,直接決定下面的步驟是否能夠繼續,當我們有版本更新的時候就要更改版本号,這裡預設是0.1.0,一定要與之前我們在Xcode中看到的s.version号一緻!
九、建立關聯
建立關聯.gif
$ pod repo push QinzRepo QinzTool.podspec
這裡QinzRepo 是第二步裡面的;
QinzTool.podspec 是第六步裡面的;
複制
通過這一步我們就同步好了遠端和本地索引庫,到此,私有庫已經制作完畢!
十、使用自己的私有庫
使用.gif
當我們要使用自己建立的私有庫時,要引用我們之前第一步建立的索引倉庫位址,也就是指針倉庫位址,見上圖!
其實這裡的使用不像一般第三方庫那樣,需要加上兩個source 才行,否則會報錯。
詳情爬坑過程見這篇文章:Cocopods| 中使用自己的私有倉庫時的一次報錯記錄
參考文章 http://www.cocoachina.com/ios/20180511/23359.html