1.動態(tài)庫與靜態(tài)庫的區(qū)別
靜態(tài)庫:連接時完整地拷貝至可執(zhí)行文件中,被多次使用就有多份冗余拷貝违寞;
動態(tài)庫:連接時不復制翎卓,程序運行時由系統(tǒng)動態(tài)加載到內存契邀,供程序調用,系統(tǒng)只加載一次失暴,多個程序共用坯门,節(jié)省內存
系統(tǒng)的.framework是動態(tài)庫,我們自己建立的.framework是靜態(tài)庫
.a與.framework的區(qū)別
a. .a是一個純二進制文件逗扒,.framework中除了有二進制文件之外還有資源文件
b. .a文件不能直接使用古戴,至少要有.h文件配合,.framework文件可以直接使用
c. .a + .h + sourceFile = .framework
3.打包環(huán)境
a.將Mach-O Type設為Static Library, framework可以是動態(tài)庫也可以是靜態(tài)庫矩肩,對于系統(tǒng)的framework是動態(tài)庫现恼,而用戶制作的framework只能是靜態(tài)庫;
選中XMFramework->Build Settings->Mach-O Type(搜索mach)
b.Build Active Architecture Only 修改為NO, 否則生成的靜態(tài)庫就只支持當前設備的架構;
c.iOS Deployment Target, 靜態(tài)庫需要支持的最低版本號要小于等于主項目的版本號
d.Valid Architecture 支持的iOS的CPU架構
framework 模擬器版本和 release 版本合并命令:
lipo -create + 上面兩個文件的路徑+ -output + 合成后文件的輸出路徑