组件化(七)远程私有库的子索引库
2022-01-06 本文已影响0人
奋斗的小马达
一、远程私有库子索引库的意义
首先看下面的图片
82461641365234_.pic_hd.jpg
如上图所示,AFNetworking 它有5个子索引库 平时我们使用AFNetworking的时候,仅仅使用了它其中的一个子库,如果我们不指定子库 那么pod下来的就是所有的库。此时工程里就多出啦很多无用的代码。
如果我们不像引入无用的代码,此时 子索引库(Subspecs)就体现出作用了
我们可以单独饮用其中一个子库
例:只引入 Reachability 这个子库
Podfile 文件
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'
target 'CCC' do
use_frameworks!
pod 'AFNetworking/Reachability'
end
工程文件
B39FA9786CAC14EF90D5A956E531F93F.png
如上面的示例。
二、如何创建远程私有库子索引库
1、远程索引库文件分级 一个子库分一个文件夹 如图
F1BD0A4E-DFB0-4094-9956-4FCBA2B71284.png
如上图 我分远程库分成了三个文件夹 (一个是分类、一个是网络请求类、一个是GCD定时器 如果多个直接添加文件夹即可)
2、修改 FCPrivateTools.podspec 文件内容
D7315DC0D3CF8C3F93B951340D053FB3.png
3、上传代码
1、cd到 fcprivate-tools 文件目录下 看清楚目录别错了
//提交到远程仓库
2、 git add .
3、git commit -m 'xxxx'
4、git push origin master
//5、打标签 (这一步很关键 标签名称一定要与 spec 文件里面的版本号一致)
git tag '0.0.3'
git push --tags
4、验证
//本地验证
pod lib lint --allow-warnings
//远程验证
pod spec lint --use-libraries --allow-warnings
其实这一步验证可以省略 但是为了保证我们能够成功 所以验证一下本地和远程是否成功 如果都能成功则进行下一步
验证成功 如图所示
8677A6C0455704AA7D0B24883B42425E.png
5、上传自己的远程索引库
pod repo push 自己远程索引库的名称 自己的工具库.podspec
//这是我的
pod repo push FCPrivateSpec FCPrivateTools.podspec
如果出错 可以试试
pod repo push FCPrivateSpec FCPrivateTools.podspec --allow-warnings
成功如图所示
D1AD5A8D32A29DD11C932C12DA996985.png
6、验证是否升级成功
pod search 你自己的库
//我的库
pod search FCPrivateTools
成功如图
0B3D728961C91E527A5BD16C33DC3C67.png7、创建工程来验证
Podfile 文件
source 'https://gitee.com/fc1024/fcprivate-spec.git'
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'
target 'Test' do
use_frameworks!
pod 'FCPrivateTools/Categories'
pod 'FCPrivateTools/NetworkManger'
end
pod install
结果如下
3A577AAD9B83B6D8A7FB81EBE92FC5E1.png
工程
38F6D14BB9D3A54F5CAE7B6F33A67879.png
我们远程库中有三个(Categories、NetworkManger、GCDTimer)
而在工程中我们只引用了 Categories 和 NetworkManger
所以工程內只有 Categories 和 NetworkManger 不会引入 GCDTimer
如果我们只是
pod 'FCPrivateTools'
这样会把所有的子库都能引入到工程