iOS组件库创建(二)

iOS组件库创建(一)

四、私有组件库更新

1. 打开你的MJKit.podspec文件,将原本的版本号改为0.2.0,与下面提交的tag保持一致

2、代码更新,在pods的MJKit文件夹中创建新的视图MJView如下图:

Classes文件夹本身就有,只需要添加显示,如图:

代码提交: cd /Users/MacPro3/Desktop/project/MJKit

git add . git commit -m '更新描述'

git pull  //可能在更新之前需要先拉下代码

git push origin master

3、版本更新及索引库更新

为更新索引库做准备

git tag -a '0.2.0' -m '注释'

git push --tags

更新之后验证lib、spec

pod lib lint --use-libraries --allow-warnings

pod spec lint --use-libraries --allow-warnings

验证成功,更新索引库:

pod repo push MJSpecs MJKit.podspec --use-libraries --allow-warnings

执行pod search MJKit 可查看新版本

五、第三方依赖及子库Subspecs

1、添加第三方依赖

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

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

2、子库Subspecs

但是这里存在一个问题,如果来了一位新的小伙伴,他所负责的部分只需要MJKit下的MJView,而MJKit下的其他文件才需要依赖第三方AFNetworking,此时他若是pod一整个MJKitt就是平白无故安装了第三方依赖库。这个时候需要用到Subspecs子库。

例如,pod search AFNetworking,其中UIKit、NSURLSession、Reachability、Security、Serialization都是AFNetworking的子库,在Podfile中将pod 'AFNetworking'改为pod 'AFNetworking/Reachability'即可单独使用这一功能。

子库格式:

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

end

因为这里已经分离出子库了,所以s.source_files和s.dependency就不能按照原来的podspec文件中的使用了,需要在子库里分别指定,所以直接把原来的s.source_files和s.dependency都注释掉。写法参考如下。

# 如果MJView使用第三方依赖,就在其内部设置dependency
s.subspec 'MJView' do |c|
    c.source_files = 'MJKit/Classes/MJView/**/*'
    c.dependency 'AFNetworking', '~> 3.0.0'
end
# 如果MJView不使用第三方依赖,在其内部不设置dependency,子库中谁使用谁设置
s.subspec 'MJView' do |c|
    c.source_files = 'MJKit/Classes/MJView/**/* '
end

修改后再按之前的步骤更新索引库和组件库就可以了。

如果遇到验证不通过,可以重新提交,清除之前的tag,重新提交

删除本地tag:

git tag -d test

删除远程tag:(可以在平台删除)

git push origin :refs/tags/test

更新之后查找MJKit就可以看到子库,如下图:

Pod search MJKit

原文地址:https://www.cnblogs.com/lulushen/p/14798875.html