关于组件化

最近项目刚刚上线,因为项目比较着急整体感觉比较乱,所以想去系统的了解一下之前网上说的比较多的组件化,于是用了俩天时间大概初步理解一些东西。首先个人认为组件化是将一些项目中通用的代码摘录出来,使用cocopods进行项目管理,类似AFN,SDWebimage等三方框架(这里也包括私有库),就是把业务代码拆分出来进行管理,个人感觉需要多人开发维护且业务复杂的项目可以将项目模块化,处理解耦等问题, 本项目用不到,只是简单使用cocopods管理一些共用的基础库而已,好像说了好多废话。。。开始实战

首先如果想将私有库使用cocopods管理,如何将项目传到cocopods进行管理分为2步

1 : 需要一个索引库,存放spec文件的地方,也就是用来找到放代码的地方

如果制作私有库,你必须有一个存放代码的仓库,并且别人看不到,这里使用的是码云来存放私有库,你也可以使用GitHub或者自己服务器都可以自行决定,那么我们先登录码云,创建一个名TestDemo的私有项目如图:


我们就正常创建就可以,然后cd  ~/.cocoapods/repos 前往本地cocopods本地仓库,然后将这个索引库添加到cocopods本地 执行终端命令 pod repo add https://gitee.com/XXNSLog/TestDemo.git  后边的地址就是你创建项目的地址,如图

TestDemo是添加到cocopods的索引库

2: 需要一个存放私有库的地方

索引库制作完成后需要制作一个放私有库代码的地方,首先我们在码云创建一个私有库名为TestTool,然后桌面上创建一个叫TestTool的文件夹用来放代码的地方,然后终端cd 到这个文件夹下,然后就是创建私有库的模板,终端输入 pod lib create TestTool,TestTool 是你刚才创建私有库的名字,如下图按这个输入就可以啦

输入命令之后打开TestTool如下图,在Classes下将你想要上传的私有库的代码复制进来替换一下,pod install 下就可以啦,然后将组件代码更新到码云上,执行终端

git remote add origin https://gitee.com/XXNSLog/TestDemo.git  链接是你组件的项目地址

git push -u origin master (这里不做代码上传更新到仓库的讲解,自行百度)

这里需要对版本添加个版本号和s.version 一致 

然后打开TestTool项目,点击TestTool.podspec如图

修改相应的值,其他的值我也不是很了解(比较菜) 自行查阅官方文档

然后输入pod lib lint 验证spec文件,如果报错可以根据他的提示去修改.spec文件验证成功后需要关联下终端输入 pod repo push TestDemo TestTool.podspec 第一个是索引库,第二个是spec文件

如果是公开库上传到cocopods的话需要注册一个cocopods 账号终端输入:pod trunk register  + 邮箱地址 + 描述 注册成功之后输入  pod trunk push TestTool.podspec  

成功如图

然后可以pod search 你的库名,如果报错找不到的话,原因可能要更新下本地仓库 终端执行: pod repo update

之后就大功告成啦,本次记录只为加深记忆,本人半路出家技术比较渣渣,希望各路大神指点!!

参考文章:iOS解决CocoaPods搜索不到最新版SDK的问题 -   , 代码管理| 创建自己的私有Cocopods库 - 云+社区 - 腾讯云

关于实践过程中的报错的总结

你可能感兴趣的:(关于组件化)