iOS组件化

三部曲:文章最后有个注意点*******

    //验证本地spec
    pod lib lint --use-libraries --allow-warnings
    //验证远端spec
    pod spec lint --use-libraries --allow-warnings
    //推到远端spec私有库
    pod repo push MyTestSpec HFMyTest.podspec --use-libraries --allow-warnings 

组件 Moudle_A Moudle_Acategory Moudle_B Moudle_Bcategory
Moudle_Acategory只是暴露组件对外提供的入口包括viewcontroller,或者view或者 赋值,比如我这个简单组件化的测试环境和正式环境切换,传给组件一个状态或者(用字典包起来)如下图

截屏2021-04-23 上午11.31.23.png

真正的代码在Moudle_A 和Mdoule_B里面,category组件只是依赖s.dependency 'CTMediator'

 

比如Moudle_A调组件B,那组件A的podspec里面依赖组件B的category组件Moudle_Bcategory,然后podfile里面再pod ‘Module_B’

截屏2021-04-23 上午11.17.25.png
截屏2021-04-23 上午11.18.09.png

下面是组件Module_B的category的组件,只是依赖CTMediator

截屏2021-04-23 上午11.19.24.png

//验证本地spec
pod lib lint --use-libraries --allow-warnings
//验证远端spec
pod spec lint --use-libraries --allow-warnings
//推到远端spec私有库
pod repo push 自己私有库名称 组件名称.podspec --use-libraries --allow-warnings

注意点

项目模块化时,我们制作的私有库免不了依赖其他私有库和CocoaPods的公有库。在产品更新迭代制作新版本的私有库后,准备提交私有库前的验证环境如果没有给验证私有库的命令知道地址一般都会报如下错误。

截屏2021-05-12 下午5.29.38.png

但是如果项目中如果只有公共库应该不会报错,因为验证和提交的时候默认回去官方specs库校验,目前写的库还没有只依赖公有库的。

校验podspec文件时会到远程podspec库查找相关依赖,默认只会到官方specs库校验,此时需要指定远程specs库去校验。

podspec文件在写依赖的时候也无法在对应的库后面添加源地址。但是我们可以在验证和提交的时候加上--sources参数。注意--sources后面也需要加上官方源,不然会报找不到公开的第三方库。
pod spec lint --verbose --use-libraries --allow-warnings --sources='git@私有库地址.git,https://github.com/CocoaPods/Specs.git'
其实直接pod repo push 自己私有库名称 组件名称.podspec --use-libraries --allow-warnings 不用验证上面两部(保证正确的前提下,记得打tag)

我的demo是这个:我的私有specs库在github,我的代码库放在了码云

      pod spec lint --verbose --use-libraries --allow-warnings --sources='https://github.com/groupWQ/GroupSpecs.git,https://github.com/CocoaPods/Specs.git'

代码 https://gitee.com/groupdemo

 

兼职人人是一家专门针对站长资源服务的网站,主要分享红包活动,网上赚钱方法,破解软件,站长资源,技术教程等资源下载,为站长提供有价值内容的资源网。maixueji.com 造雪机