iOS生成 .framework

前言

在做項目的時候我們經(jīng)常會用到別人封裝好的資源,我們會看到有的資源是.a、.bundle文件,有的是.framework文件刘离,那么.framework文件是怎么生成的呢?接下來我會用圖形和文字給大家詳細說明一下睹栖。

一硫惕、什么是庫

庫實際上是一種代碼共享的方式,主要用于代碼重用和源碼隱藏野来,通常分為動態(tài)庫和靜態(tài)庫恼除。
靜態(tài)庫:鏈接時完整的拷貝至可執(zhí)行文件中,被多次使用就有多份冗余拷貝曼氛。
動態(tài)庫:鏈接時不復(fù)制豁辉,程序運行時由系統(tǒng)動態(tài)加載到內(nèi)存令野,供程序調(diào)用,系統(tǒng)只加載一次徽级,多個程序共用彩掐,節(jié)省內(nèi)存空間。

二灰追、什么是.a堵幽、.bundle、.framework

在iOS中靜態(tài)庫以.a和.framework的形式存在弹澎,動態(tài)庫以.dylib和.framework的形式存在朴下。之所以.framework既可能是動態(tài)庫又可能是靜態(tài)庫,是因為蘋果公司禁止用戶級App使用動態(tài)庫苦蒿,而自己卻又堂而皇之的使用動態(tài)庫殴胧,這就造成了iOS中系統(tǒng)級的.framework是動態(tài)庫,用戶級的.framework是靜態(tài)庫佩迟。
二者區(qū)別不大团滥,.a是純二進制文件,.a文件不能單獨使用报强,至少要有.h文件配合灸姊,而.framework除了二進制文件外,還包含一些資源文件(頭文件秉溉,plist等)力惯,由于自身包含了頭文件,所以.framework可以單獨使用召嘶。 .a和.framework兩種靜態(tài)庫父晶,通常都是把需要用的到圖片或者xib文件存放在一個bundle文件中,而該bundle文件的名字和.a或.framework的名字相同弄跌。

三甲喝、靜態(tài)庫使用的必要性

1>. 代碼的共享與重用

2>. 程序模塊化

3>. 分享給別人代碼庫時代碼隱藏

4>. 開發(fā)第三方SDK

步驟

1.打開xcode,新建工程

選擇“Framework & Library”,然后next

屏幕快照 2017-01-16 下午3.50.12.png
2.創(chuàng)建功能類

創(chuàng)建一個繼承自NSObject的People類铛只。

3.實現(xiàn)功能

在新創(chuàng)建的類里面聲明方法并實現(xiàn)埠胖。這里我寫一個buy的方法,以便后面測試使用格仲。

 在People.h文件里面
#import <Foundation/Foundation.h>

@interface People : NSObject

+ (void)buy;

@end
在People.m文件里面
#import "People.h"

@implementation People

+ (void)buy
{
    NSLog(@"buy");
}

@end
4押袍、更改參數(shù)

這里貼上Xcode基本操作
http://blog.csdn.net/phunxm/article/details/17044337

屏幕快照 2017-01-16 下午3.59.59.png
5、設(shè)置Headers

將你要公開的頭文件拖至Public下凯肋,要隱藏的放在Private或者Project下谊惭,當然,隱藏的頭文件就無法再被引用。


屏幕快照 2017-01-16 下午4.03.40.png

然后需要在CustomFramework.h(必須是公開的圈盔,否則無法引用)中將你所有要公開的.h引入

屏幕快照 2017-01-16 下午4.07.48.png

打包Framework

1.選中模擬器豹芯,編譯程序(cmd+B)

2.選中測試機,編譯程序(cmd+B)

3.在finder中找到framework文件

屏幕快照 2017-01-16 下午4.11.21.png
屏幕快照 2017-01-16 下午4.11.32.png

找到下圖中所示的CustomFramework文件驱敲,一個是Debug-iphoneos(真機)下的铁蹈,一個是Debug-iphonesimulator(模擬器)下的。

屏幕快照 2017-01-16 下午4.15.46.png

使用xcode自帶的lipo可以合并兩個版本:在終端下使用命令:lipo -create /User/...../release-iphoneos/xxx.framework/xxx /User/...../release-iphonesimular/xxx.framework/xxx -output ./xxx
其中xxx為你的庫的名稱众眨,路徑為生成的靜態(tài)庫的路徑握牧,然后把生成的xxx放到真機或者模擬器版的xxx.framework里面替換里面原有的xxx庫

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市娩梨,隨后出現(xiàn)的幾起案子沿腰,更是在濱河造成了極大的恐慌,老刑警劉巖狈定,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件颂龙,死亡現(xiàn)場離奇詭異,居然都是意外死亡纽什,警方通過查閱死者的電腦和手機措嵌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來芦缰,“玉大人企巢,你說我怎么就攤上這事〗忍伲” “怎么了包斑?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長涕俗。 經(jīng)常有香客問我,道長神帅,這世上最難降的妖魔是什么再姑? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮找御,結(jié)果婚禮上元镀,老公的妹妹穿的比我還像新娘。我一直安慰自己霎桅,他們只是感情好栖疑,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著滔驶,像睡著了一般遇革。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天萝快,我揣著相機與錄音锻霎,去河邊找鬼。 笑死揪漩,一個胖子當著我的面吹牛旋恼,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播奄容,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼冰更,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了昂勒?” 一聲冷哼從身側(cè)響起蜀细,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎叁怪,沒想到半個月后审葬,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡奕谭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年涣觉,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片血柳。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡官册,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出难捌,到底是詐尸還是另有隱情膝宁,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布根吁,位于F島的核電站员淫,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏击敌。R本人自食惡果不足惜介返,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望沃斤。 院中可真熱鬧圣蝎,春花似錦、人聲如沸衡瓶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽哮针。三九已至俏拱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間崇决,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工键闺, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人澈驼。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓辛燥,卻偏偏與公主長得像,于是被迫代替她去往敵國和親缝其。 傳聞我的和親對象是個殘疾皇子挎塌,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354

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