Podfile 文件配置編譯環(huán)境
我們平時(shí)開發(fā)在測(cè)試環(huán)境,難免會(huì)添加一些用來調(diào)試的庫,進(jìn)行開發(fā)調(diào)試,方便自己更快的發(fā)現(xiàn)問題,定位問題,但是這些庫我們是不希望在Release 環(huán)境下也被編譯進(jìn)去,干擾了線上代碼的,所以就需要指定Pod庫的編譯環(huán)境,
我以滴滴研發(fā)的調(diào)試工具DoraemonKit為例
pod 'DoraemonKit', '~> 3.0.2', :configurations => ['Debug','Test']
我是多增加了Test 環(huán)境。這樣子pod庫就能區(qū)分在哪個(gè)環(huán)境編譯哪些第三方庫。
指定了Debug編譯環(huán)境才編譯的庫,Release 環(huán)境還會(huì)編譯么?
我最開始也是以為,指定了Debug 環(huán)境下編譯的庫,Release 環(huán)境下代碼是干凈的,不會(huì)有Debug 環(huán)境下才編譯的庫,其實(shí)不然,發(fā)現(xiàn)這個(gè)問題也是因?yàn)椴鹊搅丝印_€是以DoraemonKit為例:
iOS 13 剛出來的時(shí)候,我項(xiàng)目里面有DoraemonKit指定了Debug環(huán)境下編譯,但是線上包有個(gè)崩潰,是由于一個(gè)TextView分類庫 setKeyPath 引起的,而這個(gè)庫我是沒導(dǎo)入的,后來發(fā)現(xiàn)是DoraemonKit里面有引用這個(gè)庫,但是Release 環(huán)境還是給編譯進(jìn)去了。后期版本DoraemonKit移除了對(duì)這個(gè)庫的關(guān)聯(lián)。也就沒這個(gè)問題了。
最近DoraemonKit群里面在聊因?yàn)閁IWebView 被蘋果拒絕的上傳包的問題,很多小伙伴都說自己的項(xiàng)目里已經(jīng)不包含UIWebView了,為啥還是被拒了,查看是DoraemonKit里面包含了,當(dāng)然作者很快更新了版本把UIWebView 替換掉了,還是很給力的。
然后Archive 時(shí)候也可以看下log日志,是能看到Release 環(huán)境還是編譯了,雖然 + load 方法沒走,頭文件也不能被訪問,但不是完全不被編譯。現(xiàn)在我為了不影響線上代碼,每次打線上包都要移除調(diào)試庫,才放心。所以誰有完全不編譯調(diào)試庫的方式,煩請(qǐng)說一下,謝謝。
我以DoraemonKit為例,可不是說這是因?yàn)檎{(diào)試庫引起的,是pod 指定編譯環(huán)境,不能夠完全不編譯,DoraemonKit功能還是很強(qiáng)大的,感謝作者的辛苦付出。