63

iOS项目组件化搭建

 5 years ago
source link: http://www.cocoachina.com/ios/20180620/23858.html?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

项目组件化,顾名思义,就是将项目中的各个模块按照基础组建,功能组件,业务组件划分成一个个单独的模块,以使得各个模块间可以单独开发、测试、组合运行。

一般公司在天使轮后产品闭环已经确定,就需要实施组件化来应对A轮之后的业务扩张。

但也不是非得等到这一步才开始,如果在项目初期实施组件化,虽然代码量会有所增加,但是要把一个小项目组件化的难度也会小很多。

私有索引库

私有索引库的作用是存放.podSpec文件的。当你使用pod search AFN时,pod会在本地的索引库中进行搜索。

私有索引库分为本地私有索引库和远程私有索引库,它们是相互对应的。

  • 本地私有索引库

2u6zimM.png!web

本地索引库

可以发现只有一个master,这个是CocoaPods的本地索引库,但它不是私有的,只要安装过CocoaPods的电脑,都会有这么一个索引库。它对应 CocoaPods的远程索引库

由于它不是私有的,所以我们需要自己创建一个私有索引库。目前GitHub的私有代码仓库是需要money的,我们可以选择码云、码市等具有可以免费创建私有代码仓库的代码托管平台。操作和GitHub是一样的。就拿 码市 做例子。

  • 远程私有索引库

1.创建远程私有索引库。

FvyaAvM.png!web

创建远程私有索引库

2.复制远程索引库地址。

URzaQnE.png!web

复制远程仓库地址

3.打开终端,将远程私有库关联到本地。

cd /Users/yufu/.cocoapods/repos
pod repo add LTSpec https://git.coding.net/lt1061961387/LTSpec.git

4.可以发现在Finder中多了一个LTSpec。这里就是我们用来存放组件的.podSpec文件的。

r6Zfiyf.png!web

LTSpec私有库

私有代码仓库

代码仓库也分公私有,因为是公司的项目,不想暴露给别人,所以也需要建立私有代码仓库。

私有索引库也属于私有代码仓库,只是从功能上分开。一个是用来存放代码的,一个是用来存放.podSpec文件的。

私有代码仓库也分为本地私有代码库和远程私有代码库,它们也是相互对应的。

  • 本地私有代码库

1.在我们的主工程的同级目录下,创建我们的组件工程,比如我的主工程在我的桌面的LTMainProject目录下,我想抽取主工程里的网络通信模块。使用CocoaPods的模板在终端输入:

cd /Users/yufu/Desktop/LTMainProject
pod lib create LTNetworking

2.将自己抽取出的组件拷贝到创建的模板工程中

AnMNjiF.png!web

抽取的组件代码

  • 远程私有代码仓库

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

aUJVNzf.png!web

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

2.修改组件的.podSpec文件

uqMFBfI.png!web

修改文件

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

VrAV7zE.png!web

LTNetworking.podspec

7.查看远程私有索引库

MBvuIvI.png!web

远程私有索引库

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

pod search LTNetworking

QJ36BzR.png!web

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里了

z6NNveQ.png!web

集成组件成功

集成完成。

作者:iOS_Latte

链接:https://www.jianshu.com/p/66b63f56b2d5


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK