iOS 靜態(tài)庫Framework和.a

iOS 靜態(tài)庫Framework和.a

什么是庫

庫是共享程序代碼的方式指郁。庫從本質(zhì)上來說是一種可執(zhí)行代碼的二進(jìn)制格式,可以被載入內(nèi)存中執(zhí)行拷呆。在開發(fā)過程中闲坎,一些核心技術(shù)或者常用框架,出于安全性和穩(wěn)定性的考慮,不想被外界知道箫柳,所以會把核心代碼打包成庫手形,只暴露出頭文件以供使用。庫分靜態(tài)庫和動態(tài)庫兩種悯恍。今天說的是靜態(tài)庫库糠。

  1. 對于靜態(tài)庫而言,類似于一個編譯好的 .o的集合涮毫。在build的過程中瞬欧,只會參與鏈接的操作,鏈接器會將靜態(tài)庫中被使用的部分合并到可執(zhí)行文件中去罢防,用函數(shù)的實(shí)際地址來代替函數(shù)引用艘虎。
  2. 靜態(tài)庫形式:.a 和 framework
  3. .a 和 framework 有什么區(qū)別:

.a是一個純二進(jìn)制文件

framework 中除了有二進(jìn)制文件之外還有資源文件。

framework 文件可以直接使用咒吐。

.a + .h + sourceFile= .framework野建。所以創(chuàng)建靜態(tài)庫最好還是用.framework的形式。

Framework的創(chuàng)建

  1. 創(chuàng)建framework
CreateFramework.png

創(chuàng)建后發(fā)現(xiàn)只有一個.h文件恬叹,這個文件類似.pch文件候生,是所有頭文件的集合,將你要創(chuàng)建的類導(dǎo)入在這個.h文件里

  1. 設(shè)置public 文件
public.png

設(shè)置你想要別人看到引用的對外.h文件

  1. 設(shè)置mach-Type绽昼,選擇static(靜態(tài))
machType.png
  1. 設(shè)置target支持的版本號iOS 9.0 以上等唯鸭,配置支持armv7s,build active architecture only 設(shè)置為NO
  1. 運(yùn)行模擬器,然后再運(yùn)行真機(jī)硅确,點(diǎn)擊Products->show in find目溉,會看到兩個文件夾Debug-iphonesimulator和Debug-iphoneos。這是因?yàn)镕ramework模擬器和真機(jī)不同菱农,需要去合并成一個
lipoCreate.png
lipo
lipo 是個很有用的命令缭付,主要用來查看庫支持的架構(gòu)以及合并拆分庫

lipo -info
查看剛才編譯的 Framework 庫在 debug 和 release 下支持的框架:

libo -create
上面生成的庫,要么是只支持模擬器的大莫,要么是只支持真機(jī)的蛉腌,那么如何才能又能兼顧真機(jī)和模擬器呢?-create去合并
使用方式:lipo -create 庫1(空格)庫2 -output 新庫名

.a 文件的創(chuàng)建

  1. 創(chuàng)建.a
create.png

創(chuàng)建后會生成一個.h 和 .m文件只厘,(無用可刪)烙丛,去創(chuàng)建NSObject類對象

  1. 修改subpath,保持創(chuàng)建的文件和.a 文件在同一個文件夾下,其次再copyFiles下羔味,導(dǎo)入需要暴露的.h文件


    subpath.png
  2. 與framework設(shè)置相同河咽,設(shè)置mach-type,運(yùn)行模擬器赋元,合并.a文件

靜態(tài)文件調(diào)用

  1. .framework調(diào)用:拖入后綴是.framework加進(jìn)項(xiàng)目就OK了
  2. .a調(diào)用:拖入.a和.h文件加進(jìn)項(xiàng)目

模擬器i386忘蟹,x86_64,arm7,arm7s,arm64

  1. 模擬器架構(gòu):

i386 : 32位架構(gòu) 4S ~ 5

x86_64 : 64位架構(gòu) 5S ~ 現(xiàn)在的機(jī)型

  1. 真機(jī)架構(gòu):

arm7: 在最老的支持iOS7的設(shè)備上使用

arm7s: 在iPhone5和5C上使用

arm64: 運(yùn)行于iPhone5S的64位 ARM 處理器 上

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末飒房,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子媚值,更是在濱河造成了極大的恐慌狠毯,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件褥芒,死亡現(xiàn)場離奇詭異嚼松,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)锰扶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進(jìn)店門献酗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人坷牛,你說我怎么就攤上這事罕偎。” “怎么了京闰?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵颜及,是天一觀的道長。 經(jīng)常有香客問我忙干,道長器予,這世上最難降的妖魔是什么浪藻? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任捐迫,我火速辦了婚禮,結(jié)果婚禮上爱葵,老公的妹妹穿的比我還像新娘施戴。我一直安慰自己,他們只是感情好萌丈,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布赞哗。 她就那樣靜靜地躺著,像睡著了一般辆雾。 火紅的嫁衣襯著肌膚如雪肪笋。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天度迂,我揣著相機(jī)與錄音藤乙,去河邊找鬼。 笑死惭墓,一個胖子當(dāng)著我的面吹牛坛梁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播腊凶,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼划咐,長吁一口氣:“原來是場噩夢啊……” “哼拴念!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起褐缠,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤政鼠,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后队魏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體缔俄,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年器躏,在試婚紗的時候發(fā)現(xiàn)自己被綠了俐载。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡登失,死狀恐怖遏佣,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情揽浙,我是刑警寧澤状婶,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站馅巷,受9級特大地震影響膛虫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜钓猬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一稍刀、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧敞曹,春花似錦账月、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至橄登,卻和暖如春抓歼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背拢锹。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工谣妻, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人面褐。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓拌禾,卻偏偏與公主長得像,于是被迫代替她去往敵國和親展哭。 傳聞我的和親對象是個殘疾皇子湃窍,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評論 2 354