cocoapods安装_CocoaPods-私有库二进制

通常随着项目的越来越大,我们将很多的基础组件,例如安全加密,网络库,数据库,路由管理,制作成了私有库。当app功能越来越多,合作开发同一款app的不同业务线越来越多,随之而来的是代码越来越多,组件越来越多。这就会导致我们的开发同学在引用很多组件的源码时,就会很明显感受到编译一次时间越来越长。

在解决这个问题上,开发将提前编译好的私有库二进制化包集成就成了一个很好解决方案。

一.制作二进制

以之前的用来演示XDCategoryKit 库,为它创建二进制库

cocoapods-packager

cocoapods-packager是cocoapods给我提供的一个功能,能够快速帮我们打包一个二进制出来。首先我们要安装cocoapods-packager

 gem install cocoapods-packager

安装完毕,使用 pod package --help 查看它给我们提供了那些命令和参数

79b122cfc706d1c1cbc5d4f2080c9cf0.png

编辑二进制包

为了目录清晰,我在桌面新建一个temp文件夹,将我们XDCategoryKit库的XDCategoryKit.podspec文件,拷贝到temp文件下,然后在终端进入temp,执行命令

pod package XDCategoryKit.podspec --embedded

该命令会根据XDCategoryKit.podspec中对于一个库代码的描述,下载代码,进行编译。执行完毕,查看目录

089cef366a0cf4d01a1bc42b30256699.png

箭头所指,就是编译打包的framework,将拷贝放到我们的私有库的,如下图

a2c18686b82eaa9e4e975e0325c0ebf3.png

然后我们提交我们新加的framework到我们github仓库,我们还需要改造我们XDCategoryKit的XDCategoryKit.podspec。在网络上其他文章通常方式有2中方式改造,如何改造XDCategoryKit.podspec文件,背后是不同的原理。也包含了我们在之后使用上的不同

改造XDCategoryKit.podspec

显看下旧的

bf8a991da93868143fcd43152e027484.png

1.基于使用时,在命令传递参数

941297605e0448547da3b943ffba550f.png

在使用pod install时,我们需要在前面加上IS_SOURCE=1

IS_SOURCE=1 pod install

这样podspec 里的if ENV['IS_SOURCE'] 就会根据参数判断。这样有个问题就是,如果我们有很多私有库,如果每个库中都使用if ENV['IS_SOURCE'] 这种方式。那么IS_SOURCE=1 pod install的命令安装,就会是所有库都使用源码。这种方式不能只针对一个或者部分使用源码和二进制包,这也是一个弊端

2.基于subspecs

subspecs这种方式非常适用做组件化开发。举个例子,例如有个A组件库,该库提供了几个大方向的功能,由于目前某种原因,各个使用方可能使用的功能都不相同,那么A组件库就可以使用不同的subspecs提供不同的功能(当然,如果A库能自己就细化到很小颗粒度,拆分为多个库,是没有必要提供subspecs) 。如何使用subspecs来区分源码和二进制,改造XDCategoryKit.podspec文件呢,改造如下

786c51de781661942384d6480d011d48.png

二.在使用引入XDCategoryKit目前就有两种方式

pod 'XDCategoryKit'   //默认使用framework
或
pod 'XDCategoryKit/source'   //使用源码

使用方在pod install 时,还是使用该命令。当需要使用某个组件源码时,如上修改引入库的方式。在执行pod install即可。这样也可以达到可以对部分使用二进制包,部分使用源码。

使用pod 'XDCategoryKit' pod install后,我们可以看到,我们引入了framework:

3cc729d4a0251ae810ba00688b2ae73d.png

使用pod 'XDCategoryKit/source' pod install后,我们可以看到,我们引入了源码:

2056e2313e2c9f92370da684cd0a4a0b.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值