1. 程式人生 > >iOS專案元件化搭建

iOS專案元件化搭建

點選上方“iOS開發”,選擇“置頂公眾號”

關鍵時刻,第一時間送達!

640?wxfrom=5&wx_lazy=1

640?wx_fmt=gif&wxfrom=5&wx_lazy=1

專案元件化,顧名思義,就是將專案中的各個模組按照基礎組建,功能元件,業務元件劃分成一個個單獨的模組,以使得各個模組間可以單獨開發、測試、組合執行。

一般公司在天使輪後產品閉環已經確定,就需要實施元件化來應對A輪之後的業務擴張。

但也不是非得等到這一步才開始,如果在專案初期實施元件化,雖然程式碼量會有所增加,但是要把一個小專案元件化的難度也會小很多。

私有索引庫

私有索引庫的作用是存放.podSpec檔案的。當你使用pod search AFN時,pod會在本地的索引庫中進行搜尋。

私有索引庫分為本地私有索引庫和遠端私有索引庫,它們是相互對應的。

  • 本地私有索引庫

640?wx_fmt=png

本地索引庫

可以發現只有一個master,這個是CocoaPods的本地索引庫,但它不是私有的,只要安裝過CocoaPods的電腦,都會有這麼一個索引庫。它對應CocoaPods的遠端索引庫。

由於它不是私有的,所以我們需要自己建立一個私有索引庫。目前GitHub的私有程式碼倉庫是需要money的,我們可以選擇碼雲、碼市等具有可以免費建立私有程式碼倉庫的程式碼託管平臺。操作和GitHub是一樣的。就拿碼市做例子。

  • 遠端私有索引庫

1.建立遠端私有索引庫,複製倉庫地址。

640?wx_fmt=png

建立遠端私有索引庫

2.複製遠端索引庫地址。

640?wx_fmt=png

複製遠端倉庫地址

3.開啟終端,將遠端私有庫關聯到本地。

cd /Users/yufu/.cocoapods/repos

pod repo add LTSpec https://git.coding.net/lt1061961387/LTSpec.git

4.可以發現在Finder中多了一個LTSpec。這裡就是我們用來存放元件的.podSpec檔案的。

640?wx_fmt=png

LTSpec私有庫

私有程式碼倉庫

程式碼倉庫也分公私有,因為是公司的專案,不想暴露給別人,所以也需要建立私有程式碼倉庫。

私有索引庫也屬於私有程式碼倉庫,只是從功能上分開。一個是用來存放程式碼的,一個是用來存放.podSpec檔案的。

私有程式碼倉庫也分為本地私有程式碼庫和遠端私有程式碼庫,它們也是相互對應的。

  • 本地私有程式碼庫

1.在我們的主工程的同級目錄下,建立我們的元件工程,比如我的主工程在我的桌面的LTMainProject目錄下,我想抽取主工程裡的網路通訊模組。使用CocoaPods的模板在終端輸入:

cd /Users/yufu/Desktop/LTMainProject

pod lib create LTNetworking

2.將自己抽取出的元件拷貝到建立的模板工程中

640?wx_fmt=png

抽取的元件程式碼

3.修改元件的.podSpec檔案

640?wx_fmt=png

修改檔案

  • 遠端私有程式碼倉庫

1.建立遠端私有程式碼倉庫

640?wx_fmt=png

網路通訊元件的私有程式碼倉庫

2.提交本地私有模板元件程式碼到遠端私有程式碼倉庫,並打上tag標籤

cd /Users/yufu/Desktop/LTMainProject/LTNetworking

git add .

git commit -m '建立網路通訊元件'

git tag '0.1.0'

git remote add origin [email protected]:lt1061961387/LTNetworking.git

git push -u origin master

git push --tag

3.對檔案進行本地驗證和遠端驗證

cd /Users/yufu/Desktop/LTMainProject/LTNetworking

pod lib lint --private

pod spec lint --private

4.將驗證通過的.podSpec檔案加入到本地私有索引庫,並上傳到遠端私有索引庫

pod repo push LTSpec LTNetworking.podspec

5.在LTSpec路徑下就會出現LTNetworking

640?wx_fmt=png

LTNetworking.podspec

6.檢視遠端私有索引庫

640?wx_fmt=png

遠端私有索引庫

7.使用終端檢視自己的私有元件

pod search LTNetworking

640?wx_fmt=png

pod search LTNetworking

現在就可以使用pod安裝自己的私有元件了。

安裝私有元件

開啟終端一頓操作猛如虎

cd /Users/yufu/Desktop/LTMainProject/LTMainProject

vim Podfile

新增source ‘https://git.coding.net/lt1061961387/LTSpec.git’

新增pod 'LTNetworking'後退出

pod install

開啟主工程發現元件已經乖乖躺在Pod裡了

640?wx_fmt=png

整合元件成功

整合完成。

640?

  • 作者: iOS_Latte

  • https://www.jianshu.com/p/66b63f56b2d5

  • iOS開發整理髮布,轉載請聯絡作者授權

640?wx_fmt=gif