美文网首页iOS开发小技巧
iOS组件化(二)----- 组件的更新

iOS组件化(二)----- 组件的更新

作者: 小盟城主 | 来源:发表于2018-11-07 15:13 被阅读4640次

组件化系列传送门

iOS组件化(一)----- 创建私有组件库(在码云上操作)
iOS组件化(二)----- 组件的更新
iOS组件化(三)----- 加载图片等资源文件


在之前的组件里面添加新的代码,例如在基础的组件里面添加一个NewView目录

NewView目录
添加完成后我们需要更新到远程仓库

一、更新远程仓库

1. 打开你的HFMyTest.podspec文件,将原本的版本号改为0.2.0,与下面提交的tag保持一致
HFMyTest.podspec
2. 代码更新
cd /Users/hf/MyTest/HFMyTest

到本地仓库的位置

git add .
git commit -m '更新描述'
git pull  //可能在更新之前需要先拉下代码
git push origin master
commit更新
3. 版本更新

版本更新 这一步非常重要,为更新索引库做准备

git tag -a '0.2.0' -m '注释'
git push --tags
提交tag

查看远程仓库,标签数已经有2个了,点进去就可以看到0.2.0

码云上HFMyTest

二、修改描述文件并更新索引库

1. 验证远程lib
pod lib lint --use-libraries --allow-warnings
2. 验证远程spec
pod spec lint --use-libraries --allow-warnings
3. 更新索引库
pod repo push MyTestSpec HFMyTest.podspec --use-libraries --allow-warnings
更新索引库

如果在HFMyTest中的pod中查看最新的代码请

cd /Users/hf/MyTest/HFMyTest/Example
pod install

接下来就可以看到更新的最新代码


HFMyTest

三、第三方依赖

当我们的私有库需要依赖其它第三方才可以正常使用时,我们就需要在spec文件中开启依赖,例如下面所示代码,表明当前仓库需要依赖AFNetworkingSDWebImage

HFMyTest.podspec
s.dependency 'AFNetworking', '~> 3.0.0'
s.dependency 'SDWebImage', '~> 4.3.0'

修改后更新操作同上所述。

四、子库Subspecs

但是这里存在一个问题,如果来了一位新的小伙伴,他所负责的部分只需要HFMyTest下的NewView,而HFMyTest下的MyView才需要依赖AFNetworking,此时他若是pod一整个HFMyTest岂不是平白无故安装了第三方依赖库,那应该怎么做呢?

什么是Subspecs?这里我们可以搜索一下AFNetworking

pod search AFNetworking
AFNetworking

可以看到,如果我们只需要用到AFNetworking中的Reachability功能,那么并不需要将整个AFNetworking都下载下来,在Podfile中将pod 'AFNetworking'改为pod 'AFNetworking/Reachability'即可单独使用这一功能。

那接下来我们就来看看怎么描述一个子库吧
子库格式

s.subspec '子库名称' do |别名|
end

因为这里已经分离出子库了,所以s.source_filess.dependency就不能这么使用了,需要我们在子库里分别指定,所以我们直接把原来的s.source_filess.dependency都注释掉。写法参考如下

HFMyTest.podspec
#s.source_files = 'HFMyTest/Classes/**/*'
#s.dependency 'AFNetworking', '~> 3.0.0'
s.subspec 'MyView' do |c|
  c.source_files = 'HFMyTest/Classes/MyView/**/*'
  c.dependency 'AFNetworking', '~> 3.0.0'
end

s.subspec 'NewView' do |c|
  c.source_files = 'HFMyTest/Classes/NewView/**/*'
end

修改后再按之前的步骤更新索引库和组件库就可以了。
在成功更新组件库和索引库后我们再来搜索一下试试

pod search HFMyTest
HFMyTest

现在就可以爱装哪个就装哪个了,在Podfile中指定要安装的子库就行了
例如新建一个项目MyTest,在其Podfile修改如下

pod 'HFMyTest/NewView'
MyTest

相关文章

网友评论

    本文标题:iOS组件化(二)----- 组件的更新

    本文链接:https://www.haomeiwen.com/subject/hlkvxqtx.html