iOS项目组件化搭建
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会在本地的索引库中进行搜索。
私有索引库分为本地私有索引库和远程私有索引库,它们是相互对应的。
-
本地私有索引库
本地索引库
可以发现只有一个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_Latte
链接:https://www.jianshu.com/p/66b63f56b2d5
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK