iOS 組件化開發(一):遠程私有庫的基本使用

隨着項目功能的不斷增長,愈來愈多的開發人員加入,業務主線也隨之愈來愈多,形成耦合愈來愈嚴重,編譯愈來愈慢,測試不獨立等一系列問題。爲了解決此類狀況,咱們能夠考慮到使用組件化開發git

  • 概念 組件化就是將一個單一工程的項目, 分解成爲各個獨立的組件, 而後按照某種方式, 任意組織成一個擁有完整業務邏輯的工程。github

  • 優點bash

    • 獨立:獨立編寫、編譯、運行、測試
    • 重用:功能代碼的重複使用。好比不一樣項目使用同一功能模塊
    • 高效:任意增刪模塊,實現高效迭代
    • 組件化還能夠配合二進制化, 提升項目編譯速度
  • 組件分類 大致上分三類:基礎組件、功能組件和業務組件微信

    • 基礎組件:也稱爲公共組件,存放平時定義的宏、常量、協議、分類、對必要的第三方的封裝類,以及各類處理工具類,如:時間、日期、設備信息、文件處理、沙盒管理等
    • 功能組件: 自定義視圖控件、一些特定功能的封裝(如錄音、播放音頻封裝)
    • 業務組件:各類業務線

本篇先來介紹下遠程私有庫的基本使用,建議按順序看完以後,回來再看一遍步驟概括,加深瞭解,若有不足之處,歡迎指出,感謝 : )框架

步驟概括

  1. 建立遠程索引庫和私有庫工具

  2. 將遠程索引庫添加到本地 pod repo add 索引庫名稱 索引庫地址組件化

  3. 在本地建立一個pod模板庫 pod lib create 組件名稱 將框架的核心代碼添加到Classes目錄下 本地安裝測試核心代碼是否可用 pod install 修改Spec描述文件 將修改好的模板庫上傳至遠程私有庫post

  4. 上傳代碼和打標籤
    git init
    git add .
    git commit -m "提交描述"
    git remote add origin 遠程私有庫地址
    git push origin master
    git tag '0.1.0'
    git push --tags測試

  5. 提交spec至私有索引庫
    pod lib lint --private
    pod spec lint --private
    pod repo push 索引庫的本地名稱 xx.podspecui

  6. 使用
    source 官方索引庫url
    source 私有索引庫url
    pod '組件名稱'
    pod install

接下來咱們就來實戰如何建立和使用私有庫

1、建立私有索引庫

這裏以碼云爲例,建立一個LXFSpecs的私有索引庫,這玩意的做用如其名,就是用來索引的

私有索引庫

LXFSpecs

2、本地添加私有索引庫

一、查看本地索引庫

pod repo
複製代碼

查看本地索引庫

如圖,目前本地僅有github上的那個公有索引庫

二、添加私有索引庫

將咱們剛剛新建的私有索引庫LXFSpecs添加到本地

// pod repo add 索引庫名稱 索引庫地址
pod repo add LXFSpecs https://gitee.com/LinXunFeng/LXFSpecs.git
複製代碼

如今本地就有兩個索引庫,好,索引庫的事情就先放一邊去了~

3、建立組件庫

碼雲上的建立操做同上,這裏以LXFBase爲例,建立基礎組件庫

LXFBase

一、快速建立模版庫

到合適的位置建立一個與組件名相同的文件夾,cd進去後,使用以下命令

// pod lib create 組件名
pod lib create LXFBase
複製代碼

這裏會讓你配置一些信息,根據本身的狀況自行配置便可。

配置

二、添加組件內容

建立完成後會自動幫咱們打開相應的Example項目,LXFBase目錄中會出現如圖這些文件,咱們把基礎組件相關的東西丟到Classes文件夾中,而且把ReplaceMe.m文件刪除

目錄結構

默認Classes文件夾中存放的文件就是pod install時要下載下來的文件,固然能夠經過修改spec文件的配置來更改位置

三、安裝與測試本地庫

在Example項目的Podfile文件中能夠看到

pod 'LXFBase', :path => '../'
複製代碼

模板庫已經默認幫咱們在Podfile中指定了LXFBase.podspec的位置,使組件LXFBase能夠正常安裝使用和方便測試

pod install
複製代碼

pod install

pod

能夠看到咱們已經將本地的組件添加進Example中了,如今能夠盡情地作你想作的測試,確保組件的可用。

測試組件沒有問題後,咱們接下來就要將podspec文件上傳至私有索引庫,不過在此以前,須要對spec進行修改。

四、 修改Spec

具體的配置說明能夠參考Cocoapods 建立第三方框架

podspec

主要的修改內容

s.name             = 'LXFBase'
  s.version          = '0.1.0'
  s.summary          = 'LXFBase.'
  s.description      = <<-DESC
LXFBase是基礎組件庫,包括分類和經常使用工具
                       DESC
  s.homepage         = 'https://gitee.com/LinXunFeng/LXFBase'
  s.source           = { :git => 'https://gitee.com/LinXunFeng/LXFBase.git', :tag => s.version.to_s }
  s.source_files = 'LXFBase/Classes/**/*'
複製代碼

4、上傳組件代碼

一、將代碼提交到組件倉庫

git add .
git commit -m 'firstCommit'
git remote add origin https://gitee.com/LinXunFeng/LXFBase.git
// 第一次push若是報錯的話能夠加上-f
// git push -f origin master
git push origin master
複製代碼

二、打標籤

標籤0.1.0與spec中的s.version保持一致

git tag '0.1.0'
git push --tags
複製代碼

tag

標籤上傳成功

5、提交podspec到私有索引庫

在上傳spec文件前咱們能夠作一個驗證來節省時間,否則每次都推送好久結果仍是驗證失敗,會氣死人的~

一、本地驗證Spec的必填字段

// 本地驗證不會驗證 s.source 中的tag
pod lib lint
複製代碼

pod lib lint

二、遠程驗證

// 遠程驗證會驗證 s.source 中的tag,若是此時沒有打上相應的標籤則會報錯
pod spec lint
複製代碼

若是你剛纔沒有打標籤並上傳至遠程私有庫就來進行遠程驗證,確定是會報錯的

tag Error

在打完並上傳tag後再進行遠程驗證,就會驗證成功了,驗證成功後咱們就能夠進行下一步操做:提交podspec文件到索引庫

pod spec lint

  • 驗證私有庫提示 若是驗證的是私有庫,則在後面加上--private,不然會有警告,你能夠選擇--allow-warnings來忽略該警告
pod lib lint --private
pod spec lint --private
複製代碼

三、提交podspec

// pod repo push 私有索引庫名稱 spec名稱.podspec 
pod repo push LXFSpecs LXFBase.podspec 
複製代碼

這裏的操做過程:先將咱們的代碼直接push到本地索引庫LXFSpecs,推送後會自動幫咱們同步到遠程索引庫

提交成功

再來看看碼雲上的私有索引庫LXFSpecs

LXFBase.podspec

來測試下搜索咱們的組件

pod search 'LXFBase'
複製代碼

搜索成功

6、使用私有庫

這時咱們能夠來試試經過pod形式來添加組件LXFBase,建立一個新的項目

一、添加Podfile文件

pod init
複製代碼

二、在Podfile的最頂部添加以下描述

// 第二行是爲了保證公有庫的正常使用
source 'https://gitee.com/LinXunFeng/LXFSpecs.git'
source 'https://github.com/CocoaPods/Specs.git'
複製代碼

三、添加使用組件LXFBase

pod 'LXFBase'
複製代碼

四、安裝組件

pod install
複製代碼

安裝成功
成功添加組件內容

微信公衆號
相關文章
相關標籤/搜索