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.将自己抽取出的组件拷贝到创建的模板工程中

    抽取的组件代码

  • 远程私有代码仓库
    1.创建远程私有代码仓库

    网络通信组件的私有代码仓库

    2.修改组件的.podSpec文件
    修改文件

    3.提交本地私有模板组件代码到远程私有代码仓库,并打上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
    4.对文件进行本地验证和远程验证
    cd /Users/yufu/Desktop/LTMainProject/LTNetworking
    pod lib lint --private
    pod spec lint --private
    5.将验证通过的.podSpec文件加入到本地私有索引库,并上传到远程私有索引库
    pod repo push LTSpec LTNetworking.podspec
    6.在LTSpec路径下就会出现LTNetworking
    LTNetworking.podspec

    7.查看远程私有索引库
    远程私有索引库

    8.使用终端查看自己的私有组件
    pod search LTNetworking
    pod search LTNetworking

现在就可以使用pod安装自己的私有组件了。

安装私有组件

打开终端一顿操作猛如虎
cd /Users/yufu/Desktop/LTMainProject/LTMainProject
pod init
vim Podfile
添加source ‘https://git.coding.net/lt1061961387/LTSpec.git’
添加pod 'LTNetworking'后退出
pod install

打开主工程发现组件已经乖乖躺在Pod里了


集成组件成功

集成完成。

你可能感兴趣的:(iOS项目组件化搭建)