注意你的lib庫(kù)的deployment target!

大家都知道一個(gè)應(yīng)用的deploymenttarget是決定了應(yīng)用所能工作的設(shè)備系統(tǒng)的最低版本,所以我們?cè)谠O(shè)置該target的時(shí)候都設(shè)置成了項(xiàng)目所支持的系統(tǒng)最低版本(為了最大程度的兼容),如果設(shè)置的高了,在低版本的設(shè)備上是無法正常安裝的,所以對(duì)于應(yīng)用的deployment target的設(shè)置我們大家一般都不會(huì)犯錯(cuò)誤。但是對(duì)于應(yīng)用依賴于lib庫(kù)時(shí)情況又有所不同:無論我們lib庫(kù)所設(shè)置的deployment target是多少,這個(gè)lib都可以正常的被加載,工程也會(huì)順利的通過編譯,并且安裝到設(shè)備上(決定能否安裝到設(shè)備上的唯一因素就是應(yīng)用的deployment target,而跟其依賴的lib庫(kù)的deployment target 無關(guān))。在這種情況下,很可能導(dǎo)致我們忽略一些問題,我舉個(gè)例子:

應(yīng)用a, 設(shè)置deployment target 4.3, 依賴庫(kù)b,b的deploymenttarget 7.0;我們把a(bǔ)打到一部ios7的設(shè)備上運(yùn)行不會(huì)有任何問題;在ios5的設(shè)備上運(yùn)行則會(huì)崩潰;我們連接真機(jī)調(diào)試的時(shí)候很可能看到以下的日志:lazy symbol binding failed: Symbol not found:_objc_setProperty_nonatomic.

我們可能會(huì)覺得奇怪,這個(gè)方法不是我調(diào)用的呀?沒錯(cuò),你沒有調(diào)用這個(gè)方法,是系統(tǒng)自己調(diào)用了這個(gè)方法,而且這個(gè)方法是6.0才開始有的,系統(tǒng)更改了屬性的底層實(shí)現(xiàn),而在你的設(shè)備的系統(tǒng)上不支持該方法,所以就會(huì)報(bào)這個(gè)錯(cuò)誤。

結(jié)論:我們所依賴的lib庫(kù)的deployment target不應(yīng)該高于應(yīng)用的deployment target,否則很可能報(bào)錯(cuò),而且這個(gè)錯(cuò)誤不一定是你直接調(diào)用的方法,很可能是系統(tǒng)底層代碼。

操作建議:在沒有技術(shù)要求的情況下(如lib庫(kù)依賴于某個(gè)版本的新功能),不要采用默認(rèn)的deployment target,而是盡可能的把lib庫(kù)的deployment target設(shè)置低一些,這樣能夠最大程度的保證兼容低版本的設(shè)備,也避免上述的奇怪問題的產(chǎn)生。

最后編輯于
?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,639評(píng)論 19 139
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,171評(píng)論 25 708
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,279評(píng)論 6 342
  • 因?yàn)橐Y(jié)局swift3.0中引用snapKit的問題,看到一篇介紹Xcode8,swift3變化的文章,覺得很詳細(xì)...
    uniapp閱讀 4,874評(píng)論 0 12
  • 我們常常被各種各樣的事物所吸引,好像有些事情看上去是我們自己做的決定,其實(shí)有很多的情況是我們中了別人的套路,別人利...
    善行無痕閱讀 240評(píng)論 0 0

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