Required or Optional
打開Xcode的Build Phases頁,Link Binary With Libraries列出了工程所需要鏈接的.framework動態(tài)庫和.a靜態(tài)庫
然后你會發(fā)現(xiàn)右邊的Status欄是有Required和Optional兩個(gè)狀態(tài)可以選擇的,這個(gè)有什么作用呢?
對于鏈接的系統(tǒng)動態(tài)庫而言,由于ios的系統(tǒng)是在不斷的升級中,必然會引入不少新功能和新API,而大多數(shù)都是會以.framework的方式提供給開發(fā)者
如果開發(fā)者使用了這些新引入的.framework,那么因?yàn)閍pp的用戶的系統(tǒng)版本不是統(tǒng)一的,所以用戶機(jī)器上?不一定都存在該動態(tài)庫,此時(shí)就應(yīng)該把鏈接的這些新的.framework改成Optional的,然后在程序代碼中去動態(tài)判斷用戶版本,來啟動對應(yīng)的新功能
如果不修改成Optional而保持Required的話,在部分不存在該動態(tài)庫用戶的機(jī)器上,就會導(dǎo)致app一啟動就退出,因?yàn)檎也坏綄?yīng)的動態(tài)庫