组件化(七)远程私有库的子索引库

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.png

7、创建工程来验证
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'

这样会把所有的子库都能引入到工程

上一篇下一篇

猜你喜欢

热点阅读