iOS開(kāi)發(fā)之制作framework
什么是framework
Framework是資源的集合馍刮,將靜態(tài)庫(kù)(iOS8以后可以是動(dòng)態(tài)庫(kù))和其頭文件包含到一個(gè)結(jié)構(gòu)中,讓Xcode可以方便地把它納入到你的項(xiàng)目中笛辟。
分為真機(jī)—Debug(調(diào)試)版本、真機(jī)—Release(發(fā)布)版本、模擬器—Debug版本、模擬器—Release版本倔喂;開(kāi)發(fā)中一般都打包Release(發(fā)布)版本,將真機(jī)和模擬器版本合并靖苇,提供外界席噩。
在項(xiàng)目開(kāi)發(fā)的過(guò)程中,例如兩個(gè)公司之間業(yè)務(wù)交流顾复,不可能把源代碼都發(fā)送給另一個(gè)公司班挖,這時(shí)候?qū)⑺矫軆?nèi)容打包成framework鲁捏,別人只能調(diào)用接口芯砸,而不能知道其中實(shí)現(xiàn)的細(xì)節(jié)萧芙。
framework對(duì)CPU架構(gòu)的支持,首先了解iOS設(shè)備CPU架構(gòu)方面的知識(shí)假丧,ARM是微處理器行業(yè)的一家知名企業(yè)双揪,arm處理器以體積小和高性能的優(yōu)勢(shì)在嵌入式設(shè)備中廣泛使用,幾乎所有手機(jī)都是使用它的包帚。
模擬器:iphone4s-5 : i386 渔期, iphone5s-6plus : x86_64。
真機(jī):iphone3gs-4s : armv7 渴邦, iphone5-5c : armv7s (靜態(tài)庫(kù)只要支持了armv7疯趟,就可以跑在armv7s的架構(gòu)上), iphone5s-6plus : arm64谋梭。
armv6, armv7, armv7s是ARM CPU的不同指令集信峻,原則是向下兼容的。例如iPhone4S CPU支持armv7, 但它同時(shí)兼容armv6瓮床,只是使用armv6指令可能無(wú)法充分發(fā)揮它的特性盹舞。
怎么制作framework
我們將自己自定義的一個(gè)控件制作成framwork供別人使用為例,來(lái)展示framework的制作過(guò)程隘庄。
1. 打開(kāi)Xcode創(chuàng)建一個(gè)framework工程踢步。
2. 修改一些配置信息,生成支持所有架構(gòu)的版本丑掺。
3. 將之前寫(xiě)好的控件源文件拖進(jìn)工程获印,并做一些配置,主要是配置一下那些文件要暴露給別人使用吼鱼,一般頭文件需要暴露蓬豁,實(shí)現(xiàn)文件不需要。
4. 編譯菇肃,要分別針對(duì)模擬器和真機(jī)進(jìn)行編譯地粪。
5. 編譯成功就會(huì)在工程的products組下有一個(gè)黑色的xxxxx.framework的文件,如果編譯失敗是紅色的琐谤,紅色表示沒(méi)有生成蟆技。
6. 制作通用的framework,以上幾步分別生成真機(jī)和模擬器的framework斗忌,接下來(lái)生成一個(gè)通用的质礼。
7.添加頭文件引用
8.在需要引用的控制器添加頭文件,即可使用