iOS靜態(tài)庫文件(.framework和.a)合并,兼容真機以及模擬器

開發(fā)過程中有時候需要講一些功能代碼封裝到靜態(tài)庫文件中,以確保代碼的安全性庆寺。

主要分為:靜態(tài)庫道逗、動態(tài)庫兩種

靜態(tài)庫和動態(tài)庫的存在形式

靜態(tài)庫: .a 和 .framework? ?

動態(tài)庫: .dylib 和 .framework

靜態(tài)庫:鏈接時拇舀,靜態(tài)庫會被完整地復(fù)制到可執(zhí)行文件中变抽, 被多次使用就有多份冗余拷貝

動態(tài)庫:鏈接時不復(fù)制,程序運行時由系統(tǒng)動態(tài)加載到內(nèi)存掠抬,供程序調(diào)用吼野,系統(tǒng)只加載一次,多個程序共用两波,節(jié)省內(nèi)存瞳步。

需要注意的是:項目中如果使用了自制的動態(tài)庫,不能被上傳到 AppStore

所以基本上就用不到制作動態(tài)庫文件了腰奋,下面來說一說靜態(tài)庫文件单起,下面以本地framework為例。

靜態(tài)庫文件在編譯時劣坊,你選擇不同的設(shè)備時編譯出來的framework所支持的環(huán)境也會不同嘀倒,也就是你在制作完framework后,選擇的是在模擬器下編譯的話,那么你引入到其他工程中测蘑,就只能在模擬器下調(diào)用執(zhí)行灌危。如果你選擇的是在真機環(huán)境下編譯的話,那么你引入到其他工程中碳胳,只能在真機上調(diào)試運行勇蝙。

選擇不同的編譯環(huán)境,你編譯出的framework所支持的環(huán)境也不一樣固逗,每次在不同的環(huán)境下編譯后浅蚪,你可以選中你的framework(注意編譯command+B通過后,相應(yīng)的framework的名字顏色會又紅色變?yōu)楹谏┨陶郑髽?biāo)右鍵,Show in Finder洽故,可以對比一下贝攒,你會發(fā)現(xiàn)在模擬機版本編譯后的文件路徑在:Debug-iphonesimuator文件夾下。而選擇真機版本編譯后的文件路徑在:Debug-iphonesimuator文件夾下时甚。

so,問題來了隘弊,如果想要在真機跟模擬器下都能使用我們自己制作的framework的,要怎么解決這個問題呢荒适?總不能沒次更換不同環(huán)境下的framework吧(其實不怕麻煩的程序員可以這么整梨熙,但作為一個資深強迫癥患者程序員來說,太痛苦了刀诬,寶寶做不到啊)咽扇。

解決上面這個問題的話,就需要我們手動合并我們framework里面的一些文件陕壹。


舉例:

比如我編譯的framework為:ZHWActivity.framework

選擇不同環(huán)境下的framework质欲,并Show in Finder,會發(fā)現(xiàn)在兩個ZHWActivity.framework文件夾下面都有一個名為ZHWActivity(你編譯的framework的名字)的文件糠馆,這個文件在Mac下顯示的是一個白板文件嘶伟。

下面我們就需要將這個兩個文件合并成一個ZHWActivity文件:

在桌面新建一個文件夾merge,在merge文件夾下在新建兩個文件夾merge1又碌,merge2

講不同環(huán)境下的framework中的ZHWActivity(就是那個白板文件)九昧,分別放到這個兩個文件夾里。

然后打開終端毕匀,cd到merge目錄下铸鹰,執(zhí)行一下命令:

lipo -create merge1/ZHWActivity merge2/ZHWActivity -output ZHWActivity

(參考:lipo -create “……真機/目錄/那個白板文件“ "……/模擬器/目錄/那個白板文件" -output “…..另保存的/目錄/文件”)

在終端執(zhí)行完后,會發(fā)現(xiàn)在merge目錄下期揪,多出來一個ZHWActivity文件(也是一個白板文件)掉奄,這個就是已經(jīng)合并后的文件。

將合并后的文件拷貝一份,然后在你導(dǎo)入ZHWActivity.framework工程里姓建,Show in Finder一下诞仓。講工程里原來的ZHWActivity(舊的白板文件),替換成我們合并后的ZHWActivity(新的白板文件速兔,可以看一文件的大小已經(jīng)是之前舊文件的兩倍)墅拭。在重新編譯一下,你會神奇的發(fā)現(xiàn)涣狗,在真機跟模擬器下無縫切換谍婉,再也不會報錯了有木有。


tip1:同理在制作.a靜態(tài)庫文件時镀钓,也是區(qū)分真機跟模擬器的穗熬。也是可以按照上面的方法來合并**.a文件,方便我們開發(fā)過程中使用丁溅。

tip2:如果我們的制作的靜態(tài)庫文件中有包含的有.mm文件(c++跟oc混編的代碼文件)唤蔗,那么我么在其他地方導(dǎo)入時,就需要講相應(yīng)的.m文件也改為.mm文件才能正常使用窟赏。(如在ViewController.m中引入頭文件那么就需要改成ViewController.mm)妓柜。

關(guān)于靜態(tài)庫文件的制作可以參考下面這篇文章:

xocde7標(biāo)準(zhǔn)Framework靜態(tài)庫制作方法,工程轉(zhuǎn)Framework

iOS開發(fā)之靜態(tài)庫.a的制作教程

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末涯穷,一起剝皮案震驚了整個濱河市棍掐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌拷况,老刑警劉巖作煌,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蝠嘉,居然都是意外死亡最疆,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進店門蚤告,熙熙樓的掌柜王于貴愁眉苦臉地迎上來努酸,“玉大人,你說我怎么就攤上這事杜恰』裾” “怎么了?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵心褐,是天一觀的道長舔涎。 經(jīng)常有香客問我,道長逗爹,這世上最難降的妖魔是什么亡嫌? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任嚎于,我火速辦了婚禮,結(jié)果婚禮上挟冠,老公的妹妹穿的比我還像新娘于购。我一直安慰自己,他們只是感情好知染,可當(dāng)我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布肋僧。 她就那樣靜靜地躺著,像睡著了一般控淡。 火紅的嫁衣襯著肌膚如雪嫌吠。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天掺炭,我揣著相機與錄音辫诅,去河邊找鬼。 笑死涧狮,一個胖子當(dāng)著我的面吹牛泥栖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播勋篓,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼魏割!你這毒婦竟也來了譬嚣?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤钞它,失蹤者是張志新(化名)和其女友劉穎拜银,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體遭垛,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡尼桶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了锯仪。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片泵督。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖庶喜,靈堂內(nèi)的尸體忽然破棺而出小腊,到底是詐尸還是另有隱情,我是刑警寧澤久窟,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布秩冈,位于F島的核電站,受9級特大地震影響斥扛,放射性物質(zhì)發(fā)生泄漏入问。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望芬失。 院中可真熱鬧楣黍,春花似錦、人聲如沸麸折。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽倾剿。三九已至艘刚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間芭析,已是汗流浹背锚扎。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留馁启,地道東北人驾孔。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像惯疙,于是被迫代替她去往敵國和親翠勉。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,614評論 2 353

推薦閱讀更多精彩內(nèi)容