iOS開發(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版本;開發(fā)中一般都打包Release(發(fā)布)版本,將真機(jī)和模擬器版本合并,提供外界。
在項(xiàng)目開發(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. 打開Xcode創(chuàng)建一個(gè)framework工程。
2. 修改一些配置信息,生成支持所有架構(gòu)的版本。
3. 將之前寫好的控件源文件拖進(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.在需要引用的控制器添加頭文件,即可使用