iOS開發(fā) Framework制作

記錄framework靜態(tài)庫制作流程

動態(tài)庫與靜態(tài)庫的區(qū)別

靜態(tài)庫:連接時完整地拷貝至可執(zhí)行文件中渔期,被多次使用就有多份冗余拷貝。
動態(tài)庫:連接時不復制渴邦,程序運行時由系統(tǒng)動態(tài)加載到內(nèi)存疯趟,供程序調(diào)用,系統(tǒng)只加載一次谋梭,多個程序共用迅办,節(jié)省內(nèi)存。
系統(tǒng)的.framework是動態(tài)庫章蚣,我們自己建立的.framework是靜態(tài)庫。

.a與.framework的區(qū)別

  • a是一個純二進制文件姨夹,.framework中除了有二進制文件之外還有資源文件
  • .a文件不能直接使用纤垂,至少要有.h文件配合,.framework文件可以直接使用
  • .a + .h + sourceFile = .framework

如需制作.a靜態(tài)庫.a靜態(tài)庫制作教程

1.打包Framework流程

創(chuàng)建Framework項目磷账。


2.添加要集成打包的類.h/.m/.a/Bundle/Framework等

3.項目配置

TARGETS —> Build Settings
Build Setting 搜索Mach-O Type 選中StaticLibrary (靜態(tài)庫) Xcode默認是動態(tài)庫峭沦。


Build Active Architecture Only 設置為NO。意思是當前打包的.framework支持所有的設備逃糟。否則打包時只能用當前版本的模擬器或真機運行吼鱼。



Build Setting 搜索Dead Code Stripping 設置為NO。編譯選項優(yōu)化绰咽,包瘦身菇肃,(可不改)。
Build Setting 搜索iOS Deployment Target 設置最低支持版本號取募。


注意:xcode12 模擬器編譯的架構(gòu)有arm64架構(gòu)琐谤,導致與真機的架構(gòu)合并失敗。在build setting設置Excluded Architectures中設置模擬器的SDK去掉arm64,arm64e架構(gòu)


新iPhone X以上iPhone 11 iPhone12等支持新架構(gòu)得加一個arm64e,在Architectures里的other里手動添加即可

TARGETS —> Build Phases 將需要呈現(xiàn)給來的頭文件玩敏,直接從Project拖到Public中斗忌。 不想呈現(xiàn)出來的.h文件不建議拖到Private中.。放在project中即可

在framework的頭文件中導入需要公開的頭文件


4.打包

配置完項目后旺聚,選擇對應架構(gòu)织阳,編譯即可生成.framework靜態(tài)庫(發(fā)布建議設置release模式)


5.合并

可以通過添加腳本方式,但是這里只介紹手動合并
需要注意 砰粹,真機架構(gòu)只能運行在真機上唧躲,在模擬器上會報錯。模擬器架構(gòu)也一樣
如果需要支持所有設備,就需把真機和模擬器的framework合并惊窖。


分別在模擬器和真機設備下編譯刽宪,生成兩個xx.framework文件,然后將兩個文件使用命令合成一個


合并命令行
sudo lipo -create空格(真機framework文件路徑)空格(模擬器framework文件路徑)空格-output空格(自定義合成后文件存儲路徑)

把合并后的文件替換掉framework中的即可界酒。
查看framework 架構(gòu)信息
lipo -info

6.制作好的framework集成使用

把制作好的framework拖入工程即可圣拄,引用頭文件即可


每次更改framework代碼,就得打包再導入測試項目中看實際效果毁欣,很麻煩且效率低庇谆。解決方案iOS開發(fā) 靜態(tài)庫關(guān)聯(lián)demo 多工程聯(lián)調(diào)

參考文章
關(guān)于Xcode12靜態(tài)庫打包的一些心得

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市凭疮,隨后出現(xiàn)的幾起案子饭耳,更是在濱河造成了極大的恐慌,老刑警劉巖执解,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寞肖,死亡現(xiàn)場離奇詭異,居然都是意外死亡衰腌,警方通過查閱死者的電腦和手機新蟆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來右蕊,“玉大人琼稻,你說我怎么就攤上這事∪那簦” “怎么了帕翻?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長萝风。 經(jīng)常有香客問我嘀掸,道長,這世上最難降的妖魔是什么规惰? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任横殴,我火速辦了婚禮,結(jié)果婚禮上卿拴,老公的妹妹穿的比我還像新娘衫仑。我一直安慰自己,他們只是感情好堕花,可當我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布文狱。 她就那樣靜靜地躺著,像睡著了一般缘挽。 火紅的嫁衣襯著肌膚如雪瞄崇。 梳的紋絲不亂的頭發(fā)上呻粹,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天,我揣著相機與錄音苏研,去河邊找鬼等浊。 笑死,一個胖子當著我的面吹牛摹蘑,可吹牛的內(nèi)容都是我干的筹燕。 我是一名探鬼主播,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼衅鹿,長吁一口氣:“原來是場噩夢啊……” “哼撒踪!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起大渤,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤制妄,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后泵三,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體耕捞,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年烫幕,在試婚紗的時候發(fā)現(xiàn)自己被綠了俺抽。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡纬霞,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出驱显,到底是詐尸還是另有隱情诗芜,我是刑警寧澤,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布埃疫,位于F島的核電站伏恐,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏栓霜。R本人自食惡果不足惜翠桦,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望胳蛮。 院中可真熱鬧销凑,春花似錦、人聲如沸仅炊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽抚垄。三九已至蜕窿,卻和暖如春谋逻,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背桐经。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工毁兆, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人阴挣。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓气堕,卻偏偏與公主長得像,于是被迫代替她去往敵國和親屯吊。 傳聞我的和親對象是個殘疾皇子送巡,可洞房花燭夜當晚...
    茶點故事閱讀 44,976評論 2 355

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