一、靜態(tài)庫和動態(tài)庫的區(qū)別
靜態(tài)庫和動態(tài)庫主要區(qū)別是使用的時機。靜態(tài)庫是在編譯期,動態(tài)庫是在運行期;靜態(tài)庫以.a和.framework形式存在,在鏈接時靜態(tài)庫被直接復(fù)制到可執(zhí)行文件中,多次使用就會有多份冗余拷貝;動態(tài)庫以.dylib和framework形式存在,鏈接時不復(fù)制,只在程序運行時由系統(tǒng)加載到內(nèi)存中,供程序調(diào)用,系統(tǒng)只加載一次,多個程序共用,節(jié)省內(nèi)存,一般只能由系統(tǒng)創(chuàng)建。
二、靜態(tài)庫簡介
1.靜態(tài)庫分為真機-debug版本、真機-release版本,模擬器debug版本,模擬器release版本。開發(fā)中一般打包release版本,將真機和模擬器合并,提供給外界。
2.使用場景:在項目開發(fā)過程中,例如兩個公司之間業(yè)務(wù)交流,不可能把源代碼都發(fā)送給另一個公司,這時候?qū)⑺矫軆?nèi)容打包成靜態(tài)庫,別人只能調(diào)用接口,而不能知道其中實現(xiàn)的細節(jié)。