Cocoapod的使用(三)源碼切換

終于到了最后一步的源碼切換,時(shí)長(zhǎng)有點(diǎn)拖得太久了。。。廢話不多說(shuō),直接上正文:

podspec

podspec中spec的全稱是“Specification”,說(shuō)明書(shū),也就是用來(lái)描述一個(gè)pod庫(kù)的相關(guān)說(shuō)明信息的,其實(shí)實(shí)質(zhì)上podspec也是一個(gè)ruby的腳本,既然是一個(gè)腳本,那么我們就能跟寫(xiě)代碼一樣書(shū)寫(xiě)對(duì)應(yīng)代碼讓其實(shí)現(xiàn)一定的功能,例如:

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

另外由于ruby有環(huán)境變量的概念,eg:ENV[‘XXXX’]
這就相當(dāng)于全局的字典一樣ENV[#{key}]=#{value}你給他一個(gè)key和value,他會(huì)幫你存起來(lái)。
無(wú)論你在程序的哪里調(diào)用都可以訪問(wèn)到。
那么我們就可以利用這個(gè)環(huán)境變量做一些事情,比如:

// 根據(jù)不同環(huán)境變量書(shū)寫(xiě)if else,打印不同日志
ENV['LOG_TYPE'] == 1  
# 表現(xiàn)形式
if ENV['LOG_TYPE'] == 1  
    // 打印log1
else
    // 打印log2
end

那么我們同樣可以利用配置這個(gè)全局變量來(lái)切換源碼啦,自行書(shū)寫(xiě)不再贅述

源碼切換原理

怎樣指定使用源碼還是.framework/.a呢?

1.利用s.source 指向:git/:http來(lái)進(jìn)行切換

通過(guò)配置s.source指向:git/:http來(lái)進(jìn)行切換

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來(lái)處理,我們只需要配置資源地址即可
利: 靜態(tài)庫(kù)和源碼隔離
弊: 源碼和靜態(tài)庫(kù)切換,需要去刪除本地的文件才能夠進(jìn)行切換

2.利用s.prepare_command 來(lái)執(zhí)行靜態(tài)庫(kù)下載腳本

s.prepare_command = 'xxxx' # xxxx對(duì)應(yīng)你寫(xiě)的腳本
if ENV['IS_SOURCE'] == 1  
  s.resource = 'XXXXXX.{h,m}'
else
  s.resource = 'XXXXXX.{h}'
  s.framework = 'xxxxxx.framework'
end

利: 源碼和靜態(tài)庫(kù)共存,切換源碼/靜態(tài)庫(kù)不需要清除緩存。
弊: 無(wú)法做到源碼和靜態(tài)庫(kù)隔離,放權(quán)受限
弊: 我們自己要做到靜態(tài)庫(kù)下載和靜態(tài)庫(kù)校驗(yàn)問(wèn)題

使用哪種方法請(qǐng)讀者自行選擇

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容