在企業(yè)開發(fā)中换况,一些核心技術(shù)或者常用框架戈二,出于安全性和穩(wěn)定性的考慮,不想被外界知道觉吭,所以會(huì)把核心代碼打包成靜態(tài)庫鲜滩,只暴露頭文件給程序員使用(比如:友盟、百度地圖等第三方的sdk)
靜態(tài)庫和動(dòng)態(tài)庫的存在形式
靜態(tài)庫:.a 和 .framework
動(dòng)態(tài)庫:.dylib 和 .framework
靜態(tài)庫和動(dòng)態(tài)庫的區(qū)別
靜態(tài)庫:鏈接時(shí)徙硅,靜態(tài)庫會(huì)被完整地復(fù)制到可執(zhí)行文件中嗓蘑,被多次使用就有多份冗余拷貝
動(dòng)態(tài)庫:鏈接時(shí)不復(fù)制,程序運(yùn)行時(shí)由系統(tǒng)動(dòng)態(tài)加載到內(nèi)存桩皿,供程序調(diào)用,系統(tǒng)只加載一次瘤礁,多個(gè)程序共用梅尤,節(jié)省內(nèi)存
注意:項(xiàng)目中如果使用了動(dòng)態(tài)庫岩调,會(huì)蘋果拒接
靜態(tài)庫文件的版本(4種)
真機(jī)-Debug版本
真機(jī)-Release版本
模擬器-Debug版本
模擬器-Release版本
Debug(調(diào)試)版本
1号枕、含完整的符號(hào)信息,以方便調(diào)試
2葱淳、不會(huì)對(duì)代碼進(jìn)行優(yōu)化
Release(發(fā)布)版本
1、不會(huì)包含完整的符號(hào)信息
2艳狐、的執(zhí)行代碼是進(jìn)行過優(yōu)化的
3皿桑、的大小會(huì)比Debug版本的略小
4蔬啡、在執(zhí)行速度方面箱蟆,Release版本會(huì)更快些(但不意味著會(huì)有顯著的提升)
所以我們一般開發(fā)中都打包Release(發(fā)布)版本刮便,提供外界