今天我們來了解一下iOS開發(fā)當中的靜態(tài)庫待诅。。硬纤。
首先有這么幾個問題大家需要了解:
靜態(tài)庫是什么解滓?
靜態(tài)庫有什么作用?為什么要用靜態(tài)庫筝家?
如何打包靜態(tài)庫文件洼裤?
【靜態(tài)庫是什么】
簡單來說。溪王。腮鞍。一個靜態(tài)庫是若干個類,函數(shù),定義和資源的包裝,你可以將其打包并很容易的在項目之間共享莹菱。移国。。大家平時開發(fā)中看到的.a文件道伟。迹缀。使碾。其實也就是一個靜態(tài)庫文件。祝懂。票摇。
在開發(fā)的過程中我們會發(fā)現(xiàn)。砚蓬。矢门。有時候你導入了一些第三方框架。灰蛙。祟剔。只看到.h文件。摩梧。物延。卻找不到.m文件的蹤跡。障本。教届。但是卻可以成功地運行起來。驾霜。。這是為什么呢买置?
其實粪糙。。忿项。那些.m文件早已被包裝在.a文件當中蓉冈。。轩触。
【靜態(tài)庫有何作用 | 為什么要使用靜態(tài)庫】
首先寞酿。。脱柱。在不同項目的開發(fā)當中伐弹。。榨为。我們也許會用到同樣的幾個類惨好。。随闺。這時候日川。。矩乐。為了節(jié)省項目的開發(fā)時間龄句。。。我們會把這幾個常用類進行打包分歇。透葛。。當我們又需要用到的時候只要導入項目當中就可以了卿樱。僚害。。
其次繁调。萨蚕。。你希望你的這幾個類可以跟朋友們一起分享蹄胰。岳遥。。但是又不想讓別人看到你的源代碼裕寨。浩蓉。。(這點私心是很正常的宾袜。捻艳。。小編偶爾也會有庆猫。认轨。。)把它們打包成靜態(tài)庫文件是一個不錯的選擇月培。嘁字。。
綜上所述杉畜。纪蜒。。靜態(tài)庫具有以下特點(這也是大家之所以使用靜態(tài)庫的原因此叠。纯续。。):
你可以讓一些通用代碼處在自己的掌控中拌蜘。杆烁。。必要時可以對其進行修復和更改简卧;
你可以跟朋友分享資源兔魂。。举娩。同時可以避免別人盜用你的代碼析校;
你可以為項目開發(fā)節(jié)省出更多的時間构罗。。智玻。加快項目的進度遂唧;
【如何打包靜態(tài)庫文件】
對于打包靜態(tài)庫文件。吊奢。盖彭。其流程其實也是比較簡單的。页滚。召边。
首先打開我們的Xcode。裹驰。隧熙。選擇創(chuàng)建一個新的項目工程。幻林。贞盯。
但是要注意的是。沪饺。躏敢。我們要選擇的不再是Application。随闽。父丰。而是選擇Framework&Library下的Cocoa Touch Static Library(如圖)。掘宪。。
點擊之后攘烛。魏滚。。在彈出界面中有兩個單選框(Use Automatic Reference Counting和Include Unit Tests)坟漱。鼠次。。在點擊Next之前芋齿。腥寇。。請確保Use Automatic Reference Counting被選中且Include Unit Tests未選中觅捆。赦役。。
點擊Next后栅炒。掂摔。术羔。我們會發(fā)現(xiàn)在項目Product文件夾下有一個.a文件。乙漓。级历。
當你把你要打包的類放入到項目中之后。叭披。寥殖。command+B一下。涩蜘。嚼贡。然后到本地把.a文件和.h文件找出來。皱坛。编曼。這樣在之后的項目當中就可以直接使用了。剩辟。掐场。
可是。贩猎。熊户。到了這一步。吭服。嚷堡。似乎還有什么問題。艇棕。蝌戒。
一般情況下。沼琉。北苟。模擬器和真機上用的不是同一套靜態(tài)庫文件。打瘪。友鼻。這就意味著。闺骚。彩扔。每次需要使用這個靜態(tài)庫的時候。僻爽。虫碉。都要導入兩個靜態(tài)庫文件。进泼。蔗衡。????
那么纤虽。。绞惦。這個問題我們該如何處理逼纸???
這時候烟逊。盆均。。我們只需要打開我們的終端輸入以下代碼
lipo -create 模擬器用.a文件路徑 真機用.a文件路徑 -output 最終生成的.a文件路徑
運行之后打開生成的.a文件的路徑蔫缸。王滤。贺嫂。就可以看到文件了。雁乡。第喳。之后的開發(fā)中就不再需要導入兩個.a文件了。踱稍。曲饱。??????