iOS組件化探究之私有庫的創建
iOS組件化實現基本基于cocoapods,如何使用cocoapods創建自己的組件庫,是實現組件化的***要素,下面將通過gif圖完整呈現制作私有庫的具體過程,準備好了?讓我們一起來動手吧~
一:創建私有庫的索引庫
創建私有庫的索引庫,這句話有些繞口,我們分開來看:
- 私有庫:指的是我們真正放置組件代碼的地方。
- 索引庫:存放spec文件的地方,用于索引到代碼的位置。
打個比方,索引庫就好比指針,私有庫就好比對象,指針中存放了對象的地址,通過地址可以找到對象!
二:將創建的索引庫添加到本地cocoapods倉庫
1.cocoapods本地倉庫路徑
- $ ~/.cocoapods/repos
2.在本地添加一個自己的遠程索引庫
- $ pod repo add QinzRepo https://gitee.com/Qinz_323/QinzRepo.git
上面就是簡單的將我們自己創建的索引庫放置在cocoapods管理的倉庫下,默認情況下是只有一個master倉庫,我們常用的SDWebImage,AFNetWoking等的本地索引就在這個倉庫中。現在是通過碼云來創建自己的倉庫,所以要創建一個自己的索引倉庫,該倉庫下也只是存放各組件的索引文件,不存放代碼!
三:創建模板
創建模板的命令
- $ pod lib create QinzTool
通過該命令會自動創建一個模板工程,里面包含我們需要的索引文件,格式為spec,接下來通過該模板文件來制作我們自己的組件。
四:將我們自己的組件放入指定目錄
模板文件中會看到一個Development pods的文件夾,這個文件夾代表的是本地的組件庫,這里我們把Tool文件(也就是我們自己制作的組件)放在指定的文件夾,然后引入到工程中。至此,我們的本地第三方組件已經制作完成,現在可以通過在終端執行pod install看看效果了!當然,我們肯定不會局限于本地,接下來就是如何制作線上組件庫了!
五:將制作好的組件上傳至碼云
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 '初始化'是提交的備注信息,可以自己根據需要填寫,同時可以去網站上時時查看倉庫的變化!見下圖:
六:更改模板文件相關信息
我們打開Xcode工程,找到.podspec后綴的文件,更改s.summary,這個是顯示在pod search的簡短描述,s.version是版本號,***次默認是0.1.0不用修改,下面再主要修改一個s.homepage和s.source中的地址為我們創建組件倉庫的地址即可!
七:驗證spec文件
- $ pod lib lint --private
- 如果出現警告,可以將
- s.homepage = 'https://gitee.com/Qinz_323/Tool'
- 改為
- s.homepage = 'https://gitee.com/Qinz_323'
這里是對我們的spec文件進行驗證,就是是否符合要求!如果這里報錯,說明你配置spec文件是有問題的!
八:給版本打一個分支
- 此處的0.1.0版本號要與spec文件的保持一致
- $ git tag 0.1.0
- $ git push --tags
打分支這一步很重要,直接決定下面的步驟是否能夠繼續,當我們有版本更新的時候就要更改版本號,這里默認是0.1.0,一定要與之前我們在Xcode中看到的s.version號一致!
九:建立關聯
- $ pod repo push QinzRepo QinzTool.podspec
通過這一步我們就同步好了遠程和本地索引庫,到此,私有庫已經制作完畢!
十:使用自己的私有庫
當我們要使用自己創建的私有庫時,要引用我們之前***步創建的索引倉庫地址,也就是指針倉庫地址,見上圖!