搞了iOS多年,前期比较菜,中间几年因为工作不能用外网,所以一直没有做一些技术总结。最近换了工作,项目也过了最初的忙碌期,就从现在手上的项目开始做一个记录吧。
组件化这种东西对很多人是只听过没用过,小公司也不会用,所以看起来比较神秘,在我看来其实就和我们引用一个个第三方库一样,把一些模块以源码或者framework的形式上传到自己的远程仓库中,按需进行pod组装,再设计一套组件通信方式就是最简单的组件化了。有私有仓库的同学们可以自己尝试一下。
直接上干货,怎么新建子组件吧。 以test工程举例,在里面新建一个mine模块。
cd /xxx/.../test 先cd到主工程目录
pod lib create MineModule 子模块起名
这里会弹出选择语言等一系列询问,按照自己需求去勾选即可。完成之后,就可以在test的一级目录下看到MineModule文件了。
下一步就是和主工程做关联。工程访问子组件一般是本地私有库和远端私有库。开发阶段通常是本地。
1.子模块创建私有的Specs Repo,创建远端仓库并clone到本地,然后进行关联。
2.对私有库的Podspec文件进行配置。具体的这里按需求进行。
3.子模块的Podspec关联到主工程。
1)pod spec lint --allow-warnings验证
2)pod repo push test_Spec MineModule.podspec --allow-warnings
3)主工程podfile文件添加子组件路径,可以是远程仓库,可以是本地路径(本地组件化,开发阶 段)。这里就和正常引用第三方没什么区别了。
到这里主工程Development Pods文件夹下就有了我们的mine子模块,这里代码(本地组件化阶段)可以直接修改,至此子组件和主工程就关联成功了,是不是非常简单。
后续有时间补上图。