(三)敲重点!!远程私有库来了!
ⅰ.远程私有库演示
ⅱ.远程私有库升级+优化(本篇)
铺垫:本篇中的一些文件命名在ⅰ.篇中都有说明,若看不懂可移步上篇一一对应上。拷贝一份ⅰ.篇中的TnagyuanBase和TangyuanProject,现在要把另外两个工具类集成过去。分别是网络工具和宏定义。目录结构如下👇
铺垫同样的,在Classes文件夹下拖入需要集成的两个类。
cd 进入example,pod install一下,就可以看到👇红框中已经集成过来了。
But!!这个时候是编译不过的,为什么呢?因为我们的网络工具依赖了AFNetworking这个库,所以还在要spec文件里添加对AFNetworking的依赖。
再次pod install,可以在终端看到安装AFNetworking3.1.0版本
这个时候再回到example工程编译,发现success了。OK,接下来要把所有的改动都提交到git上。每一次的提交都需要打标签,意味着一个新的版本,spec里的version要记得改。
git add .
git commit -m 'x'
git push origin master
git tag 'x.x.x'
git push --tags
提交完后,要向本地私有索引库TangyuanSpecs上传spec文件,先lint验证一下。
pod spec lint --allow-warnings
pod repo push TangyuanSpecs(私有库名) TangyuanBase.podspec(spec名)
这里有一个问题,一般的警告其实是不影响的,只要加----allow-warnings即可。而我这边验证是通过的,但是pod repo push的时候就报了error--->【[!] The `TangyuanBase.podspec` specification does not validate.】集成的AFNetworking是最新版的,而我封装的方法有些已经废弃了,只要换成最新的方法就行。倒腾了很久,把Enum.h也删了,最后成功的版本是0.5.0,惭愧惭愧~~
最后一步,进入TangyuanProject,更新一下podfile
pod update —no-repo-update
工程目录pods下,最新的代码都已经集成进来了,同时也把依赖库AFNetworking集成进来了
优化
👆上面我们看到,pod会把TangyuanBase下的所有代码都集成过来了,而且都在同一个文件夹。如果我现在只需要用到NetworkTool,整个TangyuanBase集成过来有点冗余。那现在来个优化。先看下AFNetorking,它包含了5个子库。
pod search AFN新建一个AFN+test工程,pod init,然后来编辑一下podfile,这里我们只集成其中两个子库
AFN+test的podfilepod install一下,就能看到工程目录只集成了AFN的其中的两个子库
Ok,那我们现在开始给TangyuanBase库框架做子库。
・先打开TangyuanBase的example工程的podspec文件
example的podspec・按照👇图标格式编写子库,格式要注意
编写子库・提交到git,标签!标签!标签! 重要的事情说三遍
git add .
git commit -m 'xx'
git push origin master
git tag 'x.x.x'
git push --tags
・然后验证spec,上传到本地的私有索引库
pod spec lint --allow-warnings
pod repo push TangyuanSpecs(私有库名) TangyuanBase.podspec(spec名)
・上传成功后,pod search一下,就能看到子库
pod search
后续的导入私有库子库的步骤跟上面导入AFN子库的步骤一样,这里就不重复了,但别忘了加上私有库的url地址。
文采不够,全靠图来凑🙈
网友评论