【iOS 開發(fā)】打包 Framework 時使用 CocoaPods 引入第三方庫的方法

Framework

最近需要將自己項(xiàng)目的公共代碼打包成 Framework 來使用歇攻,但是在打包過程中遇到一個問題,就是提取的公共代碼中用到了一些第三方的庫,比如 AFNetworking 等总处,怎么才能把第三方庫集成進(jìn)來讓代碼編譯通過并打包成功呢,網(wǎng)上找了很久都沒有找到一篇專門說這個的狭归,讓我走了不少坑夭坪,現(xiàn)在就分享一下在打包 Framework 時怎樣使用 CocoaPods 引入第三方庫。

這篇文章已經(jīng)不適用过椎,建議查看我的另一篇文章:【iOS 開發(fā)】利用 Carthage 將項(xiàng)目打包 Framework 并依賴 CocoaPods 第三方庫的方法


創(chuàng)建 Framework 工程

1. 創(chuàng)建打包工程

  • 打開 Xcode 新建一個工程室梅,選擇 Framework & Libray 選項(xiàng)中的 Cocoa Touch Framework ,這里說一下我的 Xcode 版本是 8.3.2 疚宇。
創(chuàng)建工程
  • 假設(shè)我的代碼中要用到 MBProgressHUD 這個第三方庫(比較好演示)亡鼠,然后使用 CocoaPods 在工程中集成 MBProgressHUD ,集成方法和普通項(xiàng)目一模一樣敷待。
CocoaPods
  • 然后選擇工程下的 TestFramework.xcworkspace 重新打開工程间涵。
重新打開工程
  • 因?yàn)橐虬璧奈募赃@里我自己創(chuàng)建了一個測試類榜揖,并在里面使用了 MBProgressHUD 這個庫勾哩,在實(shí)際的打包過程中,直接把需要打包的所有文件拖到該工程中即可举哟。
測試類

2. 添加公開頭文件

  • 選中 Target 思劳,選擇 Build Phases - Headers ,可以看出有三個選項(xiàng)妨猩,分別是 Public 敢艰、Private 、Project 册赛,把需要公開給別人的 .h 文件拖到 Public 中钠导,把不想公開的,即為隱藏的 .h 文件拖到 Project 中森瘪。
Headers
  • 完成上述步驟之后牡属,在默認(rèn)生成的 .h 文件中,我的是 TestFramework.h 扼睬,把所有需要暴露的 .h 文件都用 #import <TestFramework/PublicHeader.h>引入逮栅,記住一定要將所有需要暴露的 .h 文件都引入,也就是上面 Headers - Public 中加的所有 .h 文件窗宇,不然編譯后生成的 .framework 在引用的時候會有警告措伐。
引入頭文件

3. 更改設(shè)置參數(shù)

  • 選中 Target ,選擇 Build Settings 军俊,在 Architectures 下增加 armv7s 侥加。
更改設(shè)置參數(shù)
  • 選中 Target ,選擇 Build Settings 粪躬,在搜索欄搜索 Mach-O Type 担败,將 Mach-O Type 修改為 Static Library昔穴。
更改設(shè)置參數(shù)

工程打包成 Framework

1. 真機(jī)編譯所有文件

  • 按照下圖將編譯的 Device 選擇為真機(jī) ,然后按下 Command + B 開始編譯提前,編譯成功后右鍵 Products 文件夾下的 .framework 文件吗货,點(diǎn)擊 show in Finder
編譯真機(jī)
  • 打開后可以看到打包完成的真機(jī) Framework 包狈网。
Framework

2. 模擬器編譯所有文件

  • 按照下圖將編譯的 Device 選擇為隨便一個模擬器 宙搬,然后按下 Command + B 開始編譯,編譯成功后右鍵 Products 文件夾下的 .framework 文件拓哺,點(diǎn)擊 show in Finder勇垛。
編譯模擬器
  • 打開后可以看到打包完成的模擬器 Framework 包。
Framework

3. 將兩個 Framework 合成

上面有兩個 Framework 拓售, 一個是 Debug-iphoneos(真機(jī)) 下的,一個是 Debug-iphonesimulator(模擬器) 下的镶奉,需要通過終端命令將兩個 Framework 合為一個模擬器和真機(jī)都可使用的 Framework 础淤。

  • 打開終端先輸入 lipo -create ,然后輸入 空格 哨苛。
Framework 合成
  • 接著將 Debug-iphoneos(真機(jī)) 下的 TestFramework 也就是上面框出來的空白文件直接拖到終端鸽凶,終端會自動顯示路徑。
Framework 合成
  • 然后直接將 Debug-iphonesimulator(模擬器) 下的 TestFramework 也拖到終端建峭。
Framework 合成
  • 接著輸入 -output 玻侥,然后輸入 空格
Framework 合成
  • 然后輸入 ~/Desktop/NewTestFramework 后直接回車亿蒸。
Framework 合成
  • 這時候桌面上會多一個新的文件為 NewTestFramework 凑兰,這時候?qū)⒄鏅C(jī)下的 .framework 包文件復(fù)制出來,然后將 NewTestFramework 重命名為 TestFramework 也就是 .framework 包中那個空白文件的名字边锁,如果有 .lipo 后綴就去掉姑食,接著替換 .framework 包中的那個空白文件。
Framework 合成
  • 最終替換完成后的 .framework 包就是我們最后所需要的包了茅坛,但是可以發(fā)現(xiàn)打包完后的 .framework 包里面是沒有 CocoaPods 集成的第三方庫的音半,所以在使用 .framework 包時,工程中必須也要集成 .framework 包中用到的第三方庫贡蓖,否則會找不到文件而報(bào)錯曹鸠。

測試打包完的 Framework

  • 新建一個測試工程 TestDemo ,將打包完的 TestFramework.framework 拖到工程中斥铺,測試一下剛才創(chuàng)建的 TestClass 類彻桃,可以看到 MBProgressHUD 加載框顯示出來了,測試成功晾蜘。
測試工程
  • 上面說了叛薯,測試工程中也要集成 MBProgressHUD 浑吟,否則會報(bào)錯。
第三方庫

主要步驟大概就是這樣耗溜,如果有發(fā)現(xiàn)什么問題可以給我留言组力,希望能夠幫助大家少走一些坑。

將來的你抖拴,一定會感激現(xiàn)在拼命的自己燎字,愿自己與讀者的開發(fā)之路無限美好。

我的傳送門: 博客 阿宅、簡書 候衍、微博GitHub 洒放。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蛉鹿,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子往湿,更是在濱河造成了極大的恐慌妖异,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,273評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件领追,死亡現(xiàn)場離奇詭異他膳,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)绒窑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評論 3 398
  • 文/潘曉璐 我一進(jìn)店門棕孙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人些膨,你說我怎么就攤上這事蟀俊。” “怎么了订雾?”我有些...
    開封第一講書人閱讀 167,709評論 0 360
  • 文/不壞的土叔 我叫張陵欧漱,是天一觀的道長。 經(jīng)常有香客問我葬燎,道長误甚,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,520評論 1 296
  • 正文 為了忘掉前任谱净,我火速辦了婚禮窑邦,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘壕探。我一直安慰自己冈钦,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,515評論 6 397
  • 文/花漫 我一把揭開白布李请。 她就那樣靜靜地躺著瞧筛,像睡著了一般厉熟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上较幌,一...
    開封第一講書人閱讀 52,158評論 1 308
  • 那天揍瑟,我揣著相機(jī)與錄音,去河邊找鬼乍炉。 笑死绢片,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的岛琼。 我是一名探鬼主播底循,決...
    沈念sama閱讀 40,755評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼槐瑞!你這毒婦竟也來了熙涤?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,660評論 0 276
  • 序言:老撾萬榮一對情侶失蹤困檩,失蹤者是張志新(化名)和其女友劉穎祠挫,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體窗看,經(jīng)...
    沈念sama閱讀 46,203評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡茸歧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,287評論 3 340
  • 正文 我和宋清朗相戀三年倦炒,在試婚紗的時候發(fā)現(xiàn)自己被綠了显沈。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,427評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡逢唤,死狀恐怖拉讯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情鳖藕,我是刑警寧澤魔慷,帶...
    沈念sama閱讀 36,122評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站著恩,受9級特大地震影響院尔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜喉誊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,801評論 3 333
  • 文/蒙蒙 一邀摆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧伍茄,春花似錦栋盹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽汉额。三九已至,卻和暖如春榨汤,著一層夾襖步出監(jiān)牢的瞬間蠕搜,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工件余, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留讥脐,地道東北人。 一個月前我還...
    沈念sama閱讀 48,808評論 3 376
  • 正文 我出身青樓啼器,卻偏偏與公主長得像旬渠,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子端壳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,440評論 2 359

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