最近整理了部分文件榄鉴,封裝了一些比較實(shí)用的文件庫(kù)順便整理出framework的含義柒室,以及打包過程
什么是庫(kù)
庫(kù)是共享程序代碼的一種方式渡贾,一般分為<u>靜態(tài)和動(dòng)態(tài)</u>
動(dòng)態(tài)庫(kù)和靜態(tài)庫(kù)的區(qū)別
靜態(tài)庫(kù):鏈接完整的拷貝在執(zhí)行文件中
動(dòng)態(tài)庫(kù): 運(yùn)行的時(shí)候就加載到內(nèi)存中,供程序使用雄右,系統(tǒng)只調(diào)用一次空骚,多個(gè)程序調(diào)用,節(jié)省內(nèi)存擂仍。
iOS靜態(tài)庫(kù)
.a 和 .framework
iOS動(dòng)態(tài)庫(kù)形式
.dylib 和 .framework
面試題: framework 是靜態(tài)庫(kù)嗎囤屹?
系統(tǒng)的framework 是動(dòng)態(tài)庫(kù) 我們打包的是靜態(tài)庫(kù)
為什么要使用靜態(tài)庫(kù)
lz 是為了實(shí)現(xiàn)模塊化,固定的業(yè)務(wù)轉(zhuǎn)成靜態(tài)庫(kù),還能分享代碼逢渔,但是又不讓別人看你的代碼實(shí)現(xiàn)(其實(shí)是寫別人不能改的代碼, 哈哈)肋坚。
不廢話 直接將過程
1、打開Xcode肃廓,新建工程智厌。
選擇 create framework & library
選擇 framework
2.創(chuàng)建我們所需要的文件類,比如繼承與NSobject 的testH 類
3、實(shí)現(xiàn)功能盲赊。
在新創(chuàng)建的類里面聲明方法并實(shí)現(xiàn)铣鹏。這里我寫一個(gè)sayHello的方法,以便后面測(cè)試使用哀蘑。
4诚卸、更改參數(shù)
在TARGETS下選中工程葵第,在Build Settings下更改幾個(gè)參數(shù)
在Architectures下增加armv7s,并選中合溺。將Build Active Architecture Only 設(shè)置為NO卒密。
5、設(shè)置Headers
將你要公開的頭文件拖至Public下棠赛,要隱藏的放在Private或者Project下哮奇,當(dāng)然,隱藏的頭文件就無法再被引用恭朗。
6屏镊、打包Framework
1.選中模擬器依疼,編譯程序
2.選中測(cè)試機(jī)痰腮,編譯程序
3.在finder中找到framework文件
找到下圖中所示的Test文件,一個(gè)是Debug-iphoneos(真機(jī))下的律罢,一個(gè)是Debug-iphonesimulator(模擬器)下的膀值。
4.通過終端命令將兩個(gè)framework合為一個(gè)模擬器和真機(jī)都可使用的framework。
終端代碼未: <u>lipo -create</u> /Users/chenjiazhen/Library/Developer/Xcode/DerivedData/CharTest-dxlrsuvcbsfyohedbbfitrvbqygx/Build/Products/Debug-iphoneos/CharTest.framework/CharTest /Users/chenjiazhen/Library/Developer/Xcode/DerivedData/CharTest-dxlrsuvcbsfyohedbbfitrvbqygx/Build/Products/Debug-iphonesimulator/CharTest.framework/CharTest -output /Users/chenjiazhen/Desktop/frameWork
加黑加粗 代表的是第一個(gè)使用手機(jī)打出的frameworkTest 路徑 斜體代表的是模擬器文件的路徑
-output 代表導(dǎo)出的 后面的路徑是文件夾
然后 會(huì)生成一個(gè).lipo文件
此時(shí) 修改后綴.framework 即可生成我們需要的framework包