美文网首页pod & git
Cocoapod的使用(三)源码切换

Cocoapod的使用(三)源码切换

作者: 奚山遇白 | 来源:发表于2018-12-03 18:53 被阅读0次

终于到了最后一步的源码切换,时长有点拖得太久了。。。废话不多说,直接上正文:

podspec

podspec中spec的全称是“Specification”,说明书,也就是用来描述一个pod库的相关说明信息的,其实实质上podspec也是一个ruby的脚本,既然是一个脚本,那么我们就能跟写代码一样书写对应代码让其实现一定的功能,例如:

// 打印hello world
a = "puts 'hello world'"
eval a

另外由于ruby有环境变量的概念,eg:ENV[‘XXXX’]
这就相当于全局的字典一样ENV[#{key}]=#{value}你给他一个key和value,他会帮你存起来。
无论你在程序的哪里调用都可以访问到。
那么我们就可以利用这个环境变量做一些事情,比如:

// 根据不同环境变量书写if else,打印不同日志
ENV['LOG_TYPE'] == 1  
# 表现形式
if ENV['LOG_TYPE'] == 1  
    // 打印log1
else
    // 打印log2
end

那么我们同样可以利用配置这个全局变量来切换源码啦,自行书写不再赘述

源码切换原理

怎样指定使用源码还是.framework/.a呢?

1.利用s.source 指向:git/:http来进行切换

通过配置s.source指向:git/:http来进行切换

if ENV['IS_SOURCE'] == 1  
  s.source = { :git => '源码git地址' , :tag = '0.0.1'}
  s.resource = 'XXXXXX.{h,m}'
else
  s.source = { :http => '打包下载http地址' }
  s.resource = 'XXXXXX.{h}'
  s.framework = 'WYKit.framework'
end

利: 下载和安装完全交由pod来处理,我们只需要配置资源地址即可
利: 静态库和源码隔离
弊: 源码和静态库切换,需要去删除本地的文件才能够进行切换

2.利用s.prepare_command 来执行静态库下载脚本

s.prepare_command = 'xxxx' # xxxx对应你写的脚本
if ENV['IS_SOURCE'] == 1  
  s.resource = 'XXXXXX.{h,m}'
else
  s.resource = 'XXXXXX.{h}'
  s.framework = 'xxxxxx.framework'
end

利: 源码和静态库共存,切换源码/静态库不需要清除缓存。
弊: 无法做到源码和静态库隔离,放权受限
弊: 我们自己要做到静态库下载和静态库校验问题

使用哪种方法请读者自行选择

相关文章

网友评论

    本文标题:Cocoapod的使用(三)源码切换

    本文链接:https://www.haomeiwen.com/subject/tvrucqtx.html