⑴ iOS封裝FrameWork靜態庫
1.Framework是資源的集合,將靜態庫和其頭文件包含到一個結構中,讓Xcode可以方便地把它納入到你的項目中。
靜態庫:鏈接時完整地拷貝至可執行文件中,被多次使用就有多份冗餘拷貝;例如 .a和.framework
2.動態庫:鏈接時不復制,程序運行時由系統動態載入到內存,供程序調用,系統只載入一次,多個程序共用,節省內存;例如:.dylib和.framework
系統的.framework是動態庫,我們自己建立的.framework是靜態庫。
.a與.framework的區別:
.a是一個純二進制文件,.framework中除了有二進制文件之外還有資源文件。
.a文件不能直接使用,至少要有.h文件配合,.framework文件可以直接使用。
.a + .h + sourceFile = .framework。
將Mach-O Type設為Static Library, framework可以是動態庫也可以是靜態庫,對於系統的framework是動態庫,而用戶製作的framework只能是靜態庫。
Build Active Architecture Only修改為NO,否則生成的靜態庫就只支持當前選擇設備的架構;
iOS Deployment Target ,靜態庫需要支持的最低版本號,要小於等於主項目的版本號;
Valid Architecture 支持的iOS的CPU框架;
將你要公開的頭文件拖至Public下,要隱藏的放在Private或者Project下,當然,隱藏的頭文件就無法再被引用。
分別在模擬器和真機設備下編譯,生成兩個WSLFramework.framework文件,然後把兩個WSLFramework.framework文件中的WSLFramework用命令合成一個,和.a的文件合成命令一樣(lipo -create +上面兩個文件的路徑 + -output + 合成後文件的輸出路徑 )
命令執行完後,輸出路徑下的WSLFramework就是你合並後的文件,將這個文件名字改成和你未合並之前的一樣,放到Debug-iphoneos(真機)目錄下WSLFramework.framework文件夾下,替換掉原來的WSLFramework文件;此時就可以把當前WSLFramework.framework文件拿出來了,他就是最後生成的framework文件。