制作.a靜態(tài)庫

一酪术、前言

代碼庫可分為開源庫和閉源庫

? ? ? ?開源庫即公開源代碼,能看到內(nèi)部的具體實(shí)現(xiàn),我們常見的AFN恤磷,Masonry都是開源庫

? ? ? ?閉源庫是經(jīng)過編譯的二進(jìn)制文件,只看到聲明文件野宜,看不到內(nèi)部的實(shí)現(xiàn)方法扫步,可分為靜態(tài)庫,動(dòng)態(tài)庫兩種匈子。靜態(tài)庫有兩種形式:.a和.framework河胎。動(dòng)態(tài)庫形式:.dylib,.tbd 和 .framework

? ? ? 這里簡單說一下靜態(tài)庫與動(dòng)態(tài)庫在使用上的區(qū)別虎敦,Link Binary With Libraries時(shí)游岳,靜態(tài)庫會(huì)被完整地復(fù)制到可執(zhí)行文件中,被多次使用就有多次冗余拷貝(一般三方閉源庫使用)其徙。動(dòng)態(tài)庫是在程序運(yùn)行時(shí)由系統(tǒng)動(dòng)態(tài)加載到內(nèi)存胚迫,供程序使用,系統(tǒng)只加載一次唾那,多個(gè)程序同時(shí)使用這一個(gè)访锻,節(jié)省內(nèi)存(一般系統(tǒng)閉源庫使用)。恕我直言,項(xiàng)目中如果使用了自制的動(dòng)態(tài)庫朗若,審核會(huì)被拒的哦恼五!

二、下面開始制作.a靜態(tài)庫

1. File-New-Project哭懈,選擇Cocoa Touch Static Library

2. 添加庫需要包含的源碼灾馒,將代碼放到靜態(tài)庫工程里

3. 編譯前所要注意的一些地方

編譯前products下的這個(gè)文件顯示為紅色
build architecture設(shè)為NO
在compile sources設(shè)置好編譯的依賴文件,copy files設(shè)置好聲明文件

4. Edit Scheme,選擇release模式

5. Device分別選中真機(jī)和模擬器遣总,Command+B進(jìn)行編譯睬罗,成功之后,原先紅色的那個(gè)地方會(huì)變黑旭斥。點(diǎn)到那里容达,右鍵Show In Finder〈谷可以看到Release-iphoneos(真機(jī)下的.a) release-iphonesimulator(模擬器下的.a)兩個(gè)文件夾

6. 對(duì)模擬器下的.a和真機(jī)下的.a進(jìn)行合并花盐,以便本靜態(tài)庫支持真機(jī)和模擬器

6.1 將Release-iphoneos文件夾與release-iphonesimulator文件夾拷貝到一個(gè)新建的文件夾里,打開終端菇爪,輸入:

lipo? -create “真機(jī)下的.a文件路徑” “模擬器下的.a文件路徑” -output “合并后的.a所要存放的路徑”算芯。例如下圖

6.2 檢查合并后的.a是否滿足要求,輸入命令:lipo? -info “.a所在路徑”凳宙,例如下圖熙揍,符合armv7, x86_64機(jī)型(這個(gè)在編譯前可以在build setting里進(jìn)行配置)

7. 這樣.a 靜態(tài)庫就成功制作完成,只需要將暴漏的頭文件以及制作的.a放入工程氏涩,別人就可以使用你的程序了届囚,麻麻再也不用擔(dān)心你的源碼暴漏或者有些屌絲隨意修改你的代碼了。注:圖片資源是不能打進(jìn).a的是尖,需要在外面添加

三意系、注意:

? ? ? ?如果靜態(tài)庫中有category類,則在使用靜態(tài)庫的項(xiàng)目配置中的build setting里搜索Other Linker Flags饺汹,添加參數(shù)[-ObjC]或者[-all_load]

下一回會(huì)介紹.framework靜態(tài)的的制作心得與使用方法蛔添,敬請期待。碼農(nóng)共勉首繁!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末作郭,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子弦疮,更是在濱河造成了極大的恐慌夹攒,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件胁塞,死亡現(xiàn)場離奇詭異咏尝,居然都是意外死亡压语,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門编检,熙熙樓的掌柜王于貴愁眉苦臉地迎上來胎食,“玉大人,你說我怎么就攤上這事允懂〔蘖” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵蕾总,是天一觀的道長粥航。 經(jīng)常有香客問我,道長生百,這世上最難降的妖魔是什么递雀? 我笑而不...
    開封第一講書人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮蚀浆,結(jié)果婚禮上缀程,老公的妹妹穿的比我還像新娘。我一直安慰自己市俊,他們只是感情好杨凑,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著秕衙,像睡著了一般蠢甲。 火紅的嫁衣襯著肌膚如雪僵刮。 梳的紋絲不亂的頭發(fā)上据忘,一...
    開封第一講書人閱讀 50,050評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音搞糕,去河邊找鬼勇吊。 笑死,一個(gè)胖子當(dāng)著我的面吹牛窍仰,可吹牛的內(nèi)容都是我干的汉规。 我是一名探鬼主播,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼驹吮,長吁一口氣:“原來是場噩夢啊……” “哼针史!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起碟狞,我...
    開封第一講書人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤啄枕,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后族沃,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體频祝,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡泌参,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了常空。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沽一。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖漓糙,靈堂內(nèi)的尸體忽然破棺而出铣缠,到底是詐尸還是另有隱情,我是刑警寧澤昆禽,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布攘残,位于F島的核電站,受9級(jí)特大地震影響为狸,放射性物質(zhì)發(fā)生泄漏歼郭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一辐棒、第九天 我趴在偏房一處隱蔽的房頂上張望病曾。 院中可真熱鬧,春花似錦漾根、人聲如沸泰涂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽逼蒙。三九已至,卻和暖如春寄疏,著一層夾襖步出監(jiān)牢的瞬間是牢,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來泰國打工陕截, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留驳棱,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓农曲,卻偏偏與公主長得像社搅,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子乳规,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

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