iOS開發(fā)之制作framework
什么是framework
Framework是資源的集合,將靜態(tài)庫(iOS8以后可以是動態(tài)庫)和其頭文件包含到一個結(jié)構(gòu)中今缚,讓Xcode可以方便地把它納入到你的項目中算柳。
分為真機—Debug(調(diào)試)版本、真機—Release(發(fā)布)版本姓言、模擬器—Debug版本瞬项、模擬器—Release版本;開發(fā)中一般都打包Release(發(fā)布)版本何荚,將真機和模擬器版本合并囱淋,提供外界。
在項目開發(fā)的過程中餐塘,例如兩個公司之間業(yè)務(wù)交流妥衣,不可能把源代碼都發(fā)送給另一個公司,這時候?qū)⑺矫軆?nèi)容打包成framework戒傻,別人只能調(diào)用接口税手,而不能知道其中實現(xiàn)的細(xì)節(jié)。
framework對CPU架構(gòu)的支持稠鼻,首先了解iOS設(shè)備CPU架構(gòu)方面的知識冈止,ARM是微處理器行業(yè)的一家知名企業(yè),arm處理器以體積小和高性能的優(yōu)勢在嵌入式設(shè)備中廣泛使用候齿,幾乎所有手機都是使用它的熙暴。
模擬器:iphone4s-5 : i386 , iphone5s-6plus : x86_64慌盯。
真機:iphone3gs-4s : armv7 周霉, iphone5-5c : armv7s (靜態(tài)庫只要支持了armv7,就可以跑在armv7s的架構(gòu)上)亚皂, iphone5s-6plus : arm64俱箱。
armv6, armv7, armv7s是ARM CPU的不同指令集,原則是向下兼容的灭必。例如iPhone4S CPU支持armv7, 但它同時兼容armv6狞谱,只是使用armv6指令可能無法充分發(fā)揮它的特性。
怎么制作framework
我們將自己自定義的一個控件制作成framwork供別人使用為例禁漓,來展示framework的制作過程跟衅。
-
打開Xcode創(chuàng)建一個framework工程。
-
修改一些配置信息播歼,生成支持所有架構(gòu)的版本伶跷。
-
將之前寫好的控件源文件拖進(jìn)工程,并做一些配置,主要是配置一下那些文件要暴露給別人使用叭莫,一般頭文件需要暴露蹈集,實現(xiàn)文件不需要。
-
編譯雇初,要分別針對模擬器和真機進(jìn)行編譯拢肆。
-
編譯成功就會在工程的products組下有一個黑色的xxxxx.framework的文件,如果編譯失敗是紅色的抵皱,紅色表示沒有生成善榛。
-
制作通用的framework,以上幾步分別生成真機和模擬器的framework呻畸,接下來生成一個通用的移盆。
-