iOS專案元件化搭建
點選上方“iOS開發”,選擇“置頂公眾號”
關鍵時刻,第一時間送達!
專案元件化,顧名思義,就是將專案中的各個模組按照基礎組建,功能元件,業務元件劃分成一個個單獨的模組,以使得各個模組間可以單獨開發、測試、組合執行。
一般公司在天使輪後產品閉環已經確定,就需要實施元件化來應對A輪之後的業務擴張。
但也不是非得等到這一步才開始,如果在專案初期實施元件化,雖然程式碼量會有所增加,但是要把一個小專案元件化的難度也會小很多。
私有索引庫
私有索引庫的作用是存放.podSpec檔案的。當你使用pod search AFN時,pod會在本地的索引庫中進行搜尋。
私有索引庫分為本地私有索引庫和遠端私有索引庫,它們是相互對應的。
本地私有索引庫
本地索引庫
可以發現只有一個master,這個是CocoaPods的本地索引庫,但它不是私有的,只要安裝過CocoaPods的電腦,都會有這麼一個索引庫。它對應CocoaPods的遠端索引庫。
由於它不是私有的,所以我們需要自己建立一個私有索引庫。目前GitHub的私有程式碼倉庫是需要money的,我們可以選擇碼雲、碼市等具有可以免費建立私有程式碼倉庫的程式碼託管平臺。操作和GitHub是一樣的。就拿碼市做例子。
遠端私有索引庫
1.建立遠端私有索引庫,複製倉庫地址。
建立遠端私有索引庫
2.複製遠端索引庫地址。
複製遠端倉庫地址
3.開啟終端,將遠端私有庫關聯到本地。
cd /Users/yufu/.cocoapods/repos
pod repo add LTSpec https://git.coding.net/lt1061961387/LTSpec.git
4.可以發現在Finder中多了一個LTSpec。這裡就是我們用來存放元件的.podSpec檔案的。
LTSpec私有庫
私有程式碼倉庫
程式碼倉庫也分公私有,因為是公司的專案,不想暴露給別人,所以也需要建立私有程式碼倉庫。
私有索引庫也屬於私有程式碼倉庫,只是從功能上分開。一個是用來存放程式碼的,一個是用來存放.podSpec檔案的。
私有程式碼倉庫也分為本地私有程式碼庫和遠端私有程式碼庫,它們也是相互對應的。
本地私有程式碼庫
1.在我們的主工程的同級目錄下,建立我們的元件工程,比如我的主工程在我的桌面的LTMainProject目錄下,我想抽取主工程裡的網路通訊模組。使用CocoaPods的模板在終端輸入:
cd /Users/yufu/Desktop/LTMainProject
pod lib create LTNetworking
2.將自己抽取出的元件拷貝到建立的模板工程中
抽取的元件程式碼
3.修改元件的.podSpec檔案
修改檔案
遠端私有程式碼倉庫
1.建立遠端私有程式碼倉庫
網路通訊元件的私有程式碼倉庫
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
LTNetworking.podspec
6.檢視遠端私有索引庫
遠端私有索引庫
7.使用終端檢視自己的私有元件
pod search LTNetworking
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裡了
整合元件成功
整合完成。
作者: iOS_Latte
https://www.jianshu.com/p/66b63f56b2d5
iOS開發整理髮布,轉載請聯絡作者授權