1、介紹html
在開發中常常使用到第三方的靜態框架,格式基本上就是.framework和.a格式的。使用時,會發現咱們只能使用沒法修改,這就是靜態框架的一個好處,私有性。內部實現的代碼只有公開者本人知曉,對外界是隔離的,從勞動成果上講,這也是對做者本人或者公司的一個代碼保護。那麼,咱們如何建立屬於本身的靜態庫呢,下面我就簡單地將步驟再次描述一下,在我以前的博客中有過詳細的介紹,能夠去瞅瞅:http://www.javashuo.com/article/p-gvzbfndp-gb.html。
框架
2、比較模塊化
注意:測試
(1)開發者的都是靜態包: .framework 、.aui
(2)蘋果官方都是動態包: .framework 、.dylibspa
(3)開發者建立的動態包.dylib是不容許被上架的命令行
做用:debug
(1)方便共享代碼,便於合理使用htm
(2)實現程序模塊化,對業務解耦blog
(3)開發sdk,保護具體實現代碼
區別:
(1).a是一個純二進制文件,不能直接使用,至少須要配合.h文件一塊兒使用
(2).framework除了包含二進制文件,還能夠包含資源文件。
(3).framework = .a + .h + sourceFile
(4)建議使用.framework
3、步驟
3-1:建立.framework步驟
(1)建立.framework工程項目
(2)配置buildSetting屬性字段 (有的配置會增長包體積,有的會減小包體積)
(3)拖入須要的類文件和資源包 (此處我沒有引入資源包,能夠本身建立並引入一個.bundle資源包)
(4)在BuildPhases中公開.h文件
(5)在靜態包中引入引用的.h文件
(6)使用模擬器和真機分別在debug和release模式下編譯
(7)show Finder靜態包,查找編譯成功的二進制文件
(8)使用lipo -create -output 命令行合併二進制文件
(9)選取模擬器和真機的任意一個靜態包,使用合併的二進制文件替換選取的靜態包的二進制文件
(10)將拷貝後的靜態包拖入到測試項目中測試
3-2:建立.a步驟
(1)建立.a工程項目
(2)配置buildSetting屬性字段,同上面建立.framework步驟2
(3)拖入須要的類文件和資源包 (此處我沒有引入資源包,能夠本身建立並引入一個.bundle資源包)
(4)在BuildPhases中新建New Headers並公開.h文件
(5)使用模擬器和真機分別在debug和release模式下編譯,同上面建立.framework步驟6
(6)show Finder靜態包,查找編譯成功的二進制文件
(7)使用lipo -create -output命令行合併二進制文件生成一個新的.a包
(8)將這個新的.a靜態包拷貝出來,同時將項目中的全部暴露的.h文件拷貝出來(若是有資源文件也要拷貝),放到一個文件夾下。此時,將該文件夾拖入到測試項目中測試