iOS開發(fā)之制作framework你會嗎?

可能在工作面試過程中有些負(fù)責(zé)人會提問到“開發(fā)過SDK么?什么framework 之類的東西.......”,當(dāng)時(shí)我也是一臉懵逼的回復(fù)沒,心里也會默默的有種敬仰,好牛逼的樣子!實(shí)際上呢?當(dāng)你自己做一次之后你會發(fā)現(xiàn)當(dāng)年的自己是那么的年輕......不多說廢話了!咱們一起飛起來?。?!

什么是framework

Framework是資源的集合,將靜態(tài)庫(iOS8以后可以是動(dòng)態(tài)庫)和其頭文件包含到一個(gè)結(jié)構(gòu)中,讓Xcode可以方便地把它納入到你的項(xiàng)目中。

分為真機(jī)—Debug(調(diào)試)版本、真機(jī)—Release(發(fā)布)版本、模擬器—Debug版本、模擬器—Release版本;開發(fā)中一般都打包Release(發(fā)布)版本,將真機(jī)和模擬器版本合并,提供外界。

在項(xiàng)目開發(fā)的過程中,例如兩個(gè)公司之間業(yè)務(wù)交流,不可能把源代碼都發(fā)送給另一個(gè)公司,這時(shí)候?qū)⑺矫軆?nèi)容打包成framework,別人只能調(diào)用接口,而不能知道其中實(shí)現(xiàn)的細(xì)節(jié)。

framework對CPU架構(gòu)的支持,首先了解iOS設(shè)備CPU架構(gòu)方面的知識,ARM是微處理器行業(yè)的一家知名企業(yè),arm處理器以體積小和高性能的優(yōu)勢在嵌入式設(shè)備中廣泛使用,幾乎所有手機(jī)都是使用它的。

模擬器:iphone4s-5 : i386 , iphone5s-6plus : x86_64。

真機(jī):iphone3gs-4s : armv7 , iphone5-5c : armv7s (靜態(tài)庫只要支持了armv7,就可以跑在armv7s的架構(gòu)上), iphone5s-6plus : arm64。

armv6, armv7, armv7s是ARM CPU的不同指令集,原則是向下兼容的。例如iPhone4S CPU支持armv7, 但它同時(shí)兼容armv6,只是使用armv6指令可能無法充分發(fā)揮它的特性。

怎么制作framework

我們將自己自定義的一個(gè)控件制作成framwork供別人使用為例,來展示framework的制作過程。

1.打開Xcode創(chuàng)建一個(gè)framework工程。





修改一些配置信息,生成支持所有架構(gòu)的版本。





將之前寫好的控件源文件拖進(jìn)工程,并做一些配置,主要是配置一下那些文件要暴露給別人使用,一般頭文件需要暴露,實(shí)現(xiàn)文件不需要。





編譯,要分別針對模擬器和真機(jī)進(jìn)行編譯。





編譯成功就會在工程的products組下有一個(gè)黑色的xxxxx.framework的文件,如果編譯失敗是紅色的,紅色表示沒有生成。





制作通用的framework,以上幾步分別生成真機(jī)和模擬器的framework,接下來生成一個(gè)通用的。











作者:comst

鏈接:http://www.itdecent.cn/p/6c033c39884a

來源:簡書

著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容